Starting an executable system command from java
I'm new to Java and i was wondering : is it possible to start an executable from Java under Windows? If so, how?
Thanx
There are only about 9 billion responses a day on how to do this. Use the search feature.
Similar Messages
-
How to execute system command from java program
Hi all,
I want to change directory path and then execute bash and other unix commands from a java program. When I execute them separately, it's working. Even in different try-catch block it's working but when I try to incorporate both of them in same try-catch block, I am not able to execute the commands. The change directory command works but it won't show me the effects of the bash and other commands.
Suggestions??The code I am using is....
try
String str="cd D:\\Test";
Process p=Runtime.getRuntime().exec("cmd /c cd
"+str);your str string is already having cd in it but again you ar giving cd as part of this command also please check this,i will suggest you to remove cd from str
Process p1=Runtime.getRuntime().exec("cmd /c mkdir
"+str+"\\test_folder");you should say mkdir once you change your path,but here you are saying mkdir first and then cd D:\Test(this is because of str)..please check this
Process p2=Runtime.getRuntime().exec("cmd /c bash");
Process p3=Runtime.getRuntime().exec("cmd /c echo
himanshu>name.txt");
catch(IOException e)
System.err.println("Error on exec() method");
e.printStackTrace();
Message was edited by:
ragas -
Execute linux command from java
I wanna execute linux command from java, bu the output has error:
Return code = 1
top: failed tty get
The code as:
import java.io.*;
public class Execute {
public static void main(String[] args) {
try {
final Process process = Runtime.getRuntime().exec("top");
new Thread() {
public void run() {
try {
InputStream is = process.getInputStream();
byte[] buffer = new byte[1024];
for (int count = 0; (count = is.read(buffer)) >= 0;) {
System.out.write(buffer, 0, count);
} catch (Exception e) {
e.printStackTrace();
}.start();
new Thread() {
public void run() {
try {
InputStream is = process.getErrorStream();
byte[] buffer = new byte[1024];
for (int count = 0; (count = is.read(buffer)) >= 0;) {
System.err.write(buffer, 0, count);
} catch (Exception e) {
e.printStackTrace();
}.start();
int returnCode = process.waitFor();
System.out.println("Return code = " + returnCode);
} catch (Exception e) {
e.printStackTrace();
}Help please.Your code is probably good to run a program, that does not use terminal capabilities.
Program "top" is a little bit more complicated - you have to run it with a real terminal.
Try to run "xterm -e top". You can find an example how to run an external program
from java code in cnd/gdb module on http://cnd.netbeans.org
For example, take a look at openExternalProgramIOWindow() method on this page:
http://cnd.netbeans.org/source/browse/cnd/gdb/src/org/netbeans/modules/cnd/debugger/gdb/proxy/Attic/GdbProxyCL.java?rev=1.1.2.6.2.5&only_with_tag=release551_fixes&view=markup
It runs a command with external terminal.
Thanks,
Nik -
Execute shell command from Java
Hi all,
I need some idea for executing shell script from Java programe.
For example i have start.sh script in /tmp/start.sh folder of unix server.
I want to execute shell script from local java code.
Any idea on this.Hi,
Read the following articles/posts, maybe this could help you:
How to execute shell command from Java
Running system commands in Java applications | java exec example | alvinalexander.com
Want to invoke a linux shell command from Java - Stack Overflow -
Unable to execute Linux command from Java
Hi,
I am currently working on a code wherein i need to execute Linux command from Java. Below are some of the query i have.
1) Is there any efficient method of running OS commands from Java, rather than using Runtime and Process method.
2) Below is details of my code which fails in execution
**-- Java Version**
java version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK Server VM (build 1.6.0-b09, mixed mode)
-- Program Code ----
Where <path> = Path i put myself
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.*;
public class GetInode{
* @param args
public static void main(String[] args) {
GetInode test = new GetInode();
test.getInode();
public void getInode(){
String command = "/usr/bin/stat -Lt <path>;
System.out.println(command);
Process process;
Runtime rt;
try{
rt = Runtime.getRuntime();
process = rt.exec(command);
InputStreamReader isr = new InputStreamReader(process.getErrorStream());
BufferedReader bre = new BufferedReader(isr);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream());
System.out.println(bre.readLine());
System.out.println(br.readLine().split(" ")[7]);
process.destroy();
}catch (Exception ex){
System.out.println("Error :- " + ex.getMessage());
------Output -------------
/usr/bin/stat -Lt "<path>"
/usr/bin/stat: cannot stat `"<path>"': No such file or directory
Error :- null
Can any one help me what is wrong and why i am unable to run the Linux command from Java.For clarity purpose............i m submitting actual code here
--- Code ---
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.*;
public class GetInode{
* @param args
public static void main(String[] args) {
GetInode test = new GetInode();
test.getInode();
public void getInode(){
String command = "/usr/bin/stat -Lt \"/afs/inf.ed.ac.uk/user/s08/s0898671/workspace/CASWESBLIN/TestFS/01_FIL_01.txt.txt\"";
System.out.println(command);
Process process;
Runtime rt;
try{
rt = Runtime.getRuntime();
process = rt.exec(command);
InputStreamReader isr = new InputStreamReader(process.getErrorStream());
BufferedReader bre = new BufferedReader(isr);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
System.out.println(bre.readLine());
System.out.println(br.readLine().split(" ")[7]);
process.destroy();
}catch (Exception ex){
System.out.println("Error :- " + ex.getMessage());
--- Output ---
[ratz]s0898671: java GetInode
/usr/bin/stat -Lt "/afs/inf.ed.ac.uk/user/s08/s0898671/workspace/CASWESBLIN/TestFS/01_FIL_01.txt.txt"
/usr/bin/stat: cannot stat `"/afs/inf.ed.ac.uk/user/s08/s0898671/workspace/CASWESBLIN/TestFS/01_FIL_01.txt.txt"': No such file or directory
Error :- null
-- Linux Terminal --
If i copy the first line from the output and execute on Linux terminal her is the output that i get
[ratz]s0898671: /usr/bin/stat -Lt "/afs/inf.ed.ac.uk/user/s08/s0898671/workspace/CASWESBLIN/TestFS/01_FIL_01.txt.txt"
/afs/inf.ed.ac.uk/user/s08/s0898671/workspace/CASWESBLIN/TestFS/01_FIL_01.txt.txt 12003 24 81a4 453166 10000 1c 360466554 2 0 1 1246638450 1246638450 1246638450 4096
Can you just assist me where am i really making mistake.......i was wondering if the command that i pass from Java....can be executed on Linux terminal why is it faling to run from java.........and when i print the Error Stream for process output........it show cannot Stat....... -
How to execute Linux command from Java app.
Hi all,
Could anyone show me how to execute Linux command from Java app. For example, I have the need to execute the "ls" command from my Java app (which is running on the Linux machine), how should I write the codes?
Thanks a lot,You can use "built-in" shell commands, you just need to invoke the shell and tell it to run the command. See the -c switch in the man page for your shell. But, "ls" isn't built-in anyays.
If you use exec, you will want to set the directory with the dir argument to exec, or add it to the command or cmdarray. See the API for the variants of java.lang.Runtime.exec(). (If you're invoking it repeatedly, you can most likely modify a cmdarray more efficiently than having exec() decompose your command).
You will also definitely want to save the returned Process and read the output from it (possibly stderr too and get an exit status). See API for java.lang.Process. Here's an example
java.io.BufferedReader br =
new java.io.BufferedReader(new java.io.InputStreamReader(
Runtime.getRuntime().exec ("/sbin/ifconfig ppp0").
getInputStream()));
while ((s = br.readLine()) != null) {... -
How to run system commands from JAVA
Hi Friends,
How to run windows system commands from JAVA
Runtime r=Runtime.getRuntime();
r.exec("dir");
Throwing following Exception
CreateProcess :dir error=2
Thanks in advance
HamsaHi ,
in Windows NT this is not possible, you can use the following :
Runtime r=Runtime.getRuntime();
StringBuffer sbuf = new StringBuffer();
String dir = new String();
java.lang.Process proc = r.exec("cmd /c dir");
InputStream is = proc.getInputStream();
int ch ;
while((ch=is.read() ) != -1)
sbuf.append((char)ch);
is.close();
dir = sbuf.toString();
System.out.println(dir ); -
Execute unix commands from Java
Hi,
I have a client application running on windows. This client should connect to a unix server and check for the existence of a file and display the result as "File found/File not found". In order to connect from windows to the unix server, I used the sockets and the connection is successfully established. The second part is to check for the presence of the file in unix server. I searched in google.com and the option I found to execute a unix command from java is the "Runtime.exec()". Runtime.exec is considered as the less effective (not a favorable) one.
Is there any other option available (other than the Runtime) to execute the unix command from java? Can you please let me know.
Thanks a lot
AishuSo, please let me know how I can execute the above unix commands without Runtime.exec()You have a client and a server.
You want something to run on the server, not the client.
That means that something must in fact being running on the server before the client does anything at all.
For example telnet. Or a J2EE server application.
So is something like that running?
If not then there absolutely no way to do what you want, even with Runtime.exec().
If yes then what you do depends on what is running. So Runtime.exec() would be pointless if a J2EE server was running. -
Execute system commands from LabVIEW
Hi,
can anybody please help me with how to execute sytem commands from labview
(WIn98 in particular).
Basically I would like to execute the command "javac example.java"
Looking forward to responses.
Please be kind enough to send me a email also
manjul [email protected]Oops. Looks like I lost the attachment on the way. Sorry... Here it comes
Attachments:
Command_Execution.vi 21 KB -
Execute operatingsystem commands from java classes?
How can I execute operatingsystem commands from my java classes?
So that I on a Linux box could i.e. execute "ls -l" etc.Also read this:
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html -
Executing shell commands from Java.
I want to execute shell commands in Java using the Runtime.exec( String ) method.
The method works fine under Linux OS, but under Windows '98 the method didn't work at all!
For example the following call: Runtime.exec( "dir" ) throws an exception showing that the command was not completed. If I replace dir with ls under Linux all is good. What is the problem with the Microsoft Windows '98 ? Is there any solution at my problem ?!
thx in advance!hey JSarmis,
You can help me... "ls" doesn't work for me on linux.. using Runtime.exec, some commands work, others don't... you may hold the key to what i need? How did u get "ls" to work? -
Executing system command in java
I am trying to set ORACLE_SID value from java application.
when i echo $ORACLE_SID it shows me the old sid value
please help
my code --->
import java.util.*;
import java.lang.*;
import java.io.*;
public class runSysCommand{
public static void main(String args[]){
String osName=System.getProperty("os.name");
System.out.println("the OS name is :" +osName);
String s=null;
String[] cmds = {"/bin/ksh","-c","export ORACLE_SID=pd3"};
try
Process p = Runtime.getRuntime().exec(cmds);
BufferedReader stdInput=new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError =new BufferedReader(new
InputStreamReader(p.getErrorStream()));
//read the output
System.out.println("here is the op:\n");
while((s=stdInput.readLine())!=null){
System.out.println(s);
System.out.println("here is the error if any");
while((s=stdError.readLine())!=null){
System.out.println(s);
System.out.println("the OS name is :" +osName);
System.exit(0);
}//end try
catch (IOException e)
System.out.println("exception Happened" );
e.printStackTrace();
System.exit(-1);
}When you execute "/bin/ksh," you get a new shell - with a new environment. When you close the shell, it's environment (and any changes) go away. What you will need to do is write a shell script that takes the value as a parameter - the script then sets the environment and runs whatever other program you want to specify. When the script exists, the environment will also disappear.
-
Executing System Commands In Java
Hi,
I am not sure if this is a bug � or I am just doing this wrong. I have
written a program to move files into ~/.trash/ . My problem is that this
works only for files without spaces � but for files with spaces it will
not work. Some of my code is below.
I have temporarily uploaded the complete file at
http://www.geocities.com/carmaski/Remove.java
public static void main(String args[]) {
String currDir = System.getProperty("user.dir") + "/";
String trashDir = "\" \"/home/masca/.trash/";
String commandString = "";
for (int i = 0; i < args.length; i++ ) {
File tmpFile = new File(currDir + args);
if(tmpFile.exists()) {
commandString = "mv \"" + currDir + args[i] + trashDir
+ args[i] + getTimeTag() + "\"";
System.out.println("The command would be -- " +
commandString);
try {
Process p = Runtime.getRuntime().exec(commandString);
catch (IOException e) {
e.printStackTrace();
System.exit(-1);
As an example I tried � this with a file that has a space � and I get
the following output.
The command would be -- mv "/home/masca/WORK/Text File"
"/home/masca/.trash/Text File_2005.04.17_04hrs:25mins:36secs"
However the file remains without being moved.
I cannot understand why the mv command does not work in java. If I
manually copy this to the command line I can get the file to work. It
should be noted that this program works perfectly if the file does not
have a space.
Regards,
RioUse File.separator or simply / instead of Windows
backslashes.
- SaishI think OP is on a unix machine, and he still needs to escape the spaces. The escape character is, of course, a back-slash.
Depending on the shell (my experience is with bash), to execute the command mv Test File.txt newTest File.txt, the file names either need to be double-quoted so that the command shell will treat them as a single token (I think that will work), or the spaces need to be escaped (I know that will work). In java, to include a single \ in a literal String, you need to escape the escape character, which is why I think two \\ are needed in the String, so that one will survive to be passed on to the exec command.
� {� -
Execute DOS command from java application
Hello,
I want to execute a DOS command (MOVE, in order to move an image from a folder to an other) from a java application. How can I do this?
FrancescoYes I have tested it and it is working but only when executing a bacth file. For instance:
Runtime rt = Runtime.getRuntime();
try{
Process proc = rt.exec("move.bat");
}catch(Exception ex){
ex.printStackTrace();
}and the command in move.bat is:
move c:\\temp\\*.gif C:\\temp2
You don't have to use double slashes in batch files, only in Java. But anyway it is working both ways.
It is not working when you try to execute the command without the batch file:
Process proc = rt.exec("move c:\\temp\\*.gif C:\\temp2"); -> this will not work.
It should work. Try to execute another command to see what happens. -
hi friends,Iam used mysqldump command in linux platform to take backup of the database,its work properly....the command am used is
mysqldump -u root -p threadpool > sampledatabase.sql
I need to execute the same command in java....?Anyone here to know how to do that....?Thanks in advance........Crosspost:
http://forum.java.sun.com/thread.jspa?threadID=5185230&messageID=9721722#9721722
http://forum.java.sun.com/thread.jspa?threadID=5185199&messageID=9721587#9721587
Do not mess the forum.
Maybe you are looking for
-
When I try to sync my iPad and iPhone it will get within the last 3 pictures then stop giving me an APPCRASH error message. Then iTunes will shut down. No matter what I do to increase or decrease the number of pictures it always stops 3rd from the la
-
How to display an URL in a UTL_SMTP email in a package.
Hi all, I tried to display this uRL from a text line in a email i send out. lv_message := lv_message || 'ABCDEFGHIJKLM' || lv_bss_siteid_notin_lkup; lv_message := lv_message || gv_crlf; lv_message := lv_messa
-
Registered application is not active at the moment. Please consult your sys
Registered application is not active at the moment. Please consult your system administrator. This is what I often (and now) see when opening the default created application "Hyperion System 9 BI+:#####.intranet.######.nl:6800::1 BI+ 9.3.1 " under de
-
Every time I want to add a clip, (any kind-video, photo, title) the screen turns white when I play it. It looks fine in the timeline, it's just when I play it, it goes blank white. Please help, this is very frustrating. MacBook Mac OS X (10.4.9)
-
HT5373 Transfer From MobileMe To ICloud...Sync Help
We were able as a business to sync our calendars with mobileme (mm) from our macs to our iphones and other computers. Now everything has been transferred to iCloud, we're unable to sync our calendars like before (though I have an updated iCloud accou