Runtime.exec using extended envp
Hello,
I would like to call Runtime.exec(String[], String[]), using the already existing environment variables with some modifications. Anyone have a tip how to accomplish this?
ugly hack, yes but it should work:
in pseudocode:
Process p = Runtime.exec(my Shell's name);
p.getOutputStream().write("setenv stuff"); // do this to modify your enviornment
p.getOutputStream().write("my executable");
That would allow you to modify the enviornment of your child process.
Similar Messages
-
Runtime.exec() paramater "String[] envp"
Hi,
envp - array of strings, each element of which has environment variable settings in the format name=value, or null if the subprocess should inherit the environment of the current process.
That's a formal definition of Runtime.exec()'s function argument
but what exactly it is responsible for?
Could you give me any usage examples?
Thanks!It's responsible for setting the environment variable.
String[] envvars = { "temp=C:\TEMP" }; -
Runtime.exec() - using cp and files with spaces on unix
I'm using the Runtime.exec method to copy files in a unix environment. This works fine until there is a file where the name has spaces in it. I've read the article on the pitfalls of using runtime and how it breaks a string on white spaces and this is what is happening. I've also found another topic that was having the same problem, but they were using /usr/bin/dos2unix. I've tried putting quotes around the filename, but it still breaks on the first space. Any suggestions on how to get around this or another way of doing this would be greatly appreciated.
An example of the os command string is:
/usr/bin/cp /tmp/file with space.doc /docs
Thanks!Hi!
Well I dont have any Sun machine right here to try this but in windows It works great.
Have you tried something like this ?
import java.io.*;
public class OSCopy {
public static void main(String[] args) {
try {
String space = " ";
String copycmd = "E:\\cp.cmd";
String source = "E:\\File with space.txt";
String destination = "E:\\tmp";
String cmd = copycmd + space + "\"" + source + "\"" + space + destination;
System.out.println("cmd: " + cmd);
Runtime runtime = Runtime.getRuntime();
Process copy = runtime.exec( cmd );
BufferedReader reader = new BufferedReader( new InputStreamReader( copy.getInputStream()) );
String line = null;
while( (line = reader.readLine()) != null ) {
System.out.println( line );
catch (Exception e) {
e.printStackTrace();
cp.cmd is a simple dos copy command
copy %1 %2
*/good luck! -
Trying to run external script using Runtime.exec
Hey,
I am trying to use Runtime.exec(cmd, evnp, dir) to execute a fortran program and get back its output, however it seems to always be hanging. Here is my code snippet :
Process process = Runtime.getRuntime().exec(
"./fortranCodeName > inputFile.txt" , null, new File("/home/myRunDir/"));
InputStream stream = new InputStream(process.getInputStream());
InputStream error = new InputStreamr(process.getErrorStream());
BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stream));
BufferedReader erroutReader = new BufferedReader(new InputStreamReader(error));
System.out.println(stream.available()); //returns 0
System.out.println(error.available()); //returns 0
while (true) {
String line1 = stdoutReader.readLine(); //hangs here
String line2 = erroutReader.readLine();
if (line1 == null) {
break;
System.out.println(line1);
System.out.println(line2);
}I know for a fact that this fortran code prints out stuff when run it in terminal, but I don't know if I have even set up my Runtime.exec statement properly. I think I am clearing out my error and input streams with the whole reader.readLine bit I have above, but I am not sure. If you replace the command with something like "echo helloWorld" or "pwd", it prints out everything properly. I also am fairly confident that I have no environmental variables that are used in the fortran code, as I received it from another computer and haven't set up any in my bash profile.
Any Ideas?Okay, so I implemented the changes from that website (thanks by the way for that link, it helps me understand this a little better). However, my problem is still occuring. Here is my new code:
class StreamThread extends Thread {
InputStream is;
String type;
StreamThread(InputStream is, String type)
this.is = is;
this.type = type;
public void run()
try
InputStreamReader isr = new InputStreamReader(is); //never gets called
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
System.out.println(type +">"+ line);
} catch (IOException ioe)
ioe.printStackTrace();
try {
Process process = Runtime.getRuntime().exec(
"./fortranCodeName" , null, new File("/home/myRunDir/"));
StreamThread stream = new StreamThread(process.getInputStream(), "OUTPUT");
StreamThread errorStream = new StreamThread(process.getInputStream(), "ERROR");
stream.start();
errorStream.start();
int exitVal = process.waitFor(); //hangs here
System.out.println("ExitValue: " + exitVal); -
Issue using Runtime.exec() in Vista
I've coded a simple method using Runtime.exec() to get the client MAC ID , and it worked alright on XP. Now my client want to switch to vista , and the method is not working. Here's my code
import java.io.*;
import java.util.regex.*;
public class GetMac
public static String getMacAddress()
String mac="";
System.out.println("getMacAddress");
try {
RunTimeExecutor re=new RunTimeExecutor("ipconfig /all");
mac=re.executeAndReturnMac();
re.destroy();
} catch (Exception e) {
e.printStackTrace();
return mac;
import java.io.IOException;
import java.io.InputStream;
* @author amal
public class RunTimeExecutor
String cmd;
Process proc;
* @param cmd
public RunTimeExecutor(String cmd)
this.cmd=cmd;
* @return boolean
* @throws WIException
public String executeAndReturnMac() throws Exception
System.out.println("run");
String mac="";
if(cmd==null)
throw new Exception("No Commands");
try
final Runtime rt = Runtime.getRuntime();
proc = rt.exec(cmd);
final StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream());
InputStream iis=proc.getInputStream();
final StreamGobbler outputGobbler = new StreamGobbler(iis);
errorGobbler.start();
outputGobbler.start();
int exit=proc.waitFor();
System.out.println("exitVAl "+exit);
if(exit==0)
mac=outputGobbler.MAC;
return (exit==0) ? mac :null;
catch (IOException e)
e.printStackTrace();
catch (InterruptedException e)
e.printStackTrace();
catch(Exception e)
e.printStackTrace();
return null;
public void destroy()
if(proc!=null )
proc.destroy();
* @author amal
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
* @author amal
public class StreamGobbler extends Thread
InputStream is;
OutputStream os;
public String MAC;
StreamGobbler(InputStream is)
this(is,null);
StreamGobbler(InputStream is,OutputStream redirectTo)
this.is = is;
this.os = redirectTo;
* @see java.lang.Thread#run()
public void run()
try
PrintWriter pw = null;
if (os != null)
pw = new PrintWriter(os);
InputStreamReader isr = new InputStreamReader(is);
int c=0;
BufferedReader br = new BufferedReader(isr);
String line=null;
System.out.println("Start Reading");
while ( (line = br.readLine()) != null)
System.out.println(line);
if (pw != null)
pw.println(line);
Pattern p = Pattern.compile(".*Physical Address.*: (.*)");
Matcher m = p.matcher(line);
if (m.matches())
MAC = m.group(1);
System.out.println("seting MAC to "+MAC);
break;
if (pw != null)
pw.flush();
} catch (Exception e)
e.printStackTrace();
}The inputStream of the process doesnt get printed at all , the loop condition in StreamGobbler 'while ( (line = br.readLine()) != null)
' is never true.
Also , in random cases i've seen the System.out.println("exitVAl "+exit); line executing before the System.out.println("Start Reading"); line , and i though proc.waitFor() would guarentee otherwise.thx guys for ur replies . The issue was because of some browser security system ( or so they said . ).However i'm still puzzled about the 'waiting for the stream to finish' part .
paul.miner wrote:
{I think the process is allowed to end with output still in the >>buffers, ..so this would be expected. You should be waiting for >>your .streams to finish, since that's what you really >>care .about. .Also, .you need to add synchronization between your >>threads so you can accurately retrieve "MAC". Also, do not break out >>of the loop when you find what you're looking for, you should >>continue .reading until the end of the stream.Wasn't I suppose to be reading out of the stream to prevent an overflow?Also the break is done there are multiple lines like 'Physical address .....: xxxxxxxxxx ' in the output , and the macid is the first one.About the ProcessBuilder , I'll look into it . Thx for your advice. -
IOException File not found - While using Runtime.exec
Hey All,
I have written a Java application which needs to start up another external application. I have executables for that external application for different platforms (Win32, PPC and Linux). When the Java application is started it detects the OS and starts up the right executable according to the OS. The executable loads up fine on Windows without any problems. But in both Linux and Max OS X I get this exception:
java.io.IOException: java.io.IOException: "/home/vilas/Documents/Project/build/CLISP/linux/lisp.run": not found
at java.lang.UNIXProcess.<init>(UNIXProcess.java:143)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at jplan.communication.lispserver.LispServer.startupServer(LispServer.java:143)
at jplan.communication.lispserver.LispServer.run(LispServer.java:109)
at java.lang.Thread.run(Thread.java:534)lisp.run has all the necessary permissions. If I copy the string (/home/vilas/Documents/Project/build/CLISP/linux/lisp.run) and paste it in a terminal and press enter, the application starts up fine without any problems!! Can you please tell me what could be going wrong?
The following extra information maybe helpfull:
1) I use the exec(String command, String[] envp, File dir) version of exec.
2) The complete format of the command is as follows (one long string):
"/home/vilas/Documents/Project/build/CLISP/linux/lisp.run" -B "/home/vilas/Documents/Project/build/CLISP/linux" -M "/home/vilas/Documents/Project/build/CLISP/linux/lispinit.mem" -i loader.lisp
Thanks in advance for your time and efforts.I found the problem after extensively searing the forums (looking upto page 4 !! of the results). The problem was that I was using quotes to surround the paths in the command. If you copy and paste it in a terminal it will work fine but it does not work with runtime.exec. I am not sure, but I think the reason is that when a terminal is used, some pre-processing of the commands take place before they are passed onto the OS(shell). But while using runtime.exec, that pre-processing is not peformed and therefore some things will not work.
In order to fix the problem, I use quotes only when the OS is windows. In other cases(OS X, Linux) I escape the spaces i.e. replace " " with "\ ".
PS: The executable is a binary compiled from C code. -
Why couldn't I use Runtime.exec(cmd)?
I try to use Runtime.exec(cmd) but I can't do it. Could you give me a sample that use Runtime.exe(cmd).
Please help me!import java.io.*;
class RuntimeExec{
private static boolean quit;
public static void main(String[]args)throws IOException{
if(args.length<1){
System.out.println("Type in program to run");
System.exit(1);
quit = false;
Runtime run = Runtime.getRuntime();
Process newProcess = run.exec(args[0]);
if(newProcess!=null){
BufferedReader br = new BufferedReader(new InputStreamReader(newProcess.getInputStream()));
PrintWriter os = new PrintWriter(newProcess.getOutputStream());
BufferedReader be = new BufferedReader(new InputStreamReader(newProcess.getErrorStream()));
if(br!=null)(new ReadThread(br)).start();
if(os!=null)(new WriteThread(os)).start();
if(be!=null)(new ErrorThread(be)).start();
try{
newProcess.waitFor();
newProcess.destroy();
quit = true;
}catch(InterruptedException ie){}
}else
System.out.println("Error creating process");
System.out.println("Done!");
System.exit(0);
private static class ReadThread extends Thread{
private BufferedReader is;
public ReadThread(BufferedReader is){
this.is = is;
public void run(){
String s;
while(!quit){
try{
s=is.readLine();
if(s!=null)
System.out.println(s);
}catch(IOException e){}
private static class WriteThread extends Thread{
private PrintWriter br;
private BufferedReader ss;
public WriteThread(PrintWriter br){
this.br = br;
ss = new BufferedReader(new InputStreamReader(System.in));
public void run(){
String s;
while(!quit){
try{
s=ss.readLine();
if(s!=null)
br.println(s);
}catch(IOException e){}
private static class ErrorThread extends Thread{
private BufferedReader br;
public ErrorThread(BufferedReader br){
this.br = br;
public void run(){
while(!quit){
String s;
try{
s=br.readLine();
if(s!=null)
System.err.println(s);
}catch(IOException e){}
Sorry about that stupid code, here is code that works... with deadlocks maybe?? -
BufferedReader blocks when using Runtime.exec()
I'm executing an external process in Linux (RH 8.0) using the Runtime.exec() method and then setup two threads to read the standard and error output of the process. Most of the time this works great but every now and then the readers block and the process never exit. I even tried seting up a timer task that will close the BufferedReader after 20 seconds but that's not enough to unblock the reader - the external process is a dummy shell script which for now just outputs a single line. Does anybody have any idea why that would happen? Any help would be appreciated!
Cheers,
/Francis
P.S. Here's a snippet of the code:
public class ProcessRunner {
private Process _process = null;
private StreamGobbler _errorGobbler = null;
private StreamGobbler _outputGobbler = null;
private String[] _commandArgs;
public ProcessRunner(String[] args) {
_commandArgs = args;
public int runCommand()
throws IOException {
int exitCode = -1;
_process = Runtime.getRuntime().exec(_commandArgs[0]);
// start up stream gobblers (inspired from javaworld)
_outputGobbler = new StreamGobbler(new BufferedReader(new InputStreamReader(_process.getInputStream())));
_outputGobbler.setDaemon(true);
_errorGobbler = new StreamGobbler(new BufferedReader(new InputStreamReader(_process.getErrorStream())));
_errorGobbler.setDaemon(true);
_outputGobbler.start();
_errorGobbler.start();
try {
exitCode = _process.waitFor(); // *** THIS NEVER RETURNS ***
if (_outputGobbler != null) {
_outputGobbler.join();
if (_errorGobbler != null) {
_errorGobbler.join();
} catch (InterruptedException exc) {
//ok, continue
return exitCode;
class StreamGobbler extends Thread {
BufferedReader reader;
StreamGobbler(BufferedReader reader) {
this.reader = reader;
public void run() {
try {
final int buffersize = 256;
byte[] bytes = new byte[buffersize];
String line = null;
while((line = reader.readLine()) != null) { // ***THIS ALSO BLOCKS ***
baos.write(line.getBytes(), 0, line.length());
} catch (IOException ioe) {
// Do something here
} finally {
reader.close();
reader = null;I use this type of thing in my code using JDK1.3.1. Only difference is I don't use set up the readers in threads. I suspect you have a thread deadlock, but I can't see why. Do you have to have the i/o stream readers in the thread?
-
Issue using Runtime.exec() to export a DB
hi ,
i'm trying to write a piece of code to export an oracle DB using Runtime.exec(). I searched the forums and came up a with a piece of code , modified it a bit .The issue is the system sometimes hangs while executing the code , it's like the proc.waitFor() never returns. However the execution is error-free if using a command like 'shutdown' instead of 'exp' .
this is my main
public class DBExporter
* @param args
public static void main(String[] args)
try
StreamReaderThread outReaderThread = new StreamReaderThread();
StreamReaderThread errReaderThread = new StreamReaderThread();
//StreamReaderThread ww = new StreamReaderThread();
Runtime rt = Runtime.getRuntime();
outReaderThread.start();
errReaderThread.start();
String command = "exp beta/beta@frsp_dbS file=\"c:/shop.dmp\" full=\"N\" ";
//command = "shutdown -s";
Process proc = rt.exec(command);
outReaderThread.setInputStream(proc.getInputStream());
errReaderThread.setInputStream(proc.getErrorStream());
//ww.setOutputStream(proc.getOutputStream());
System.out.println(proc.waitFor());
proc.getInputStream().close();
proc.getErrorStream().close();
proc.getOutputStream().close();
catch (Exception e)
e.printStackTrace();
}and this is the reader class
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
*@deprecated
public class StreamReaderThread extends Thread
private BufferedReader br;
private BufferedWriter bw;
private StringBuffer sb;
private String newline;
private String line;
public StreamReaderThread()
br = null;
sb = null;
newline = null;
line = null;
public synchronized String getText()
if( sb == null )
return "";
return sb.toString();
private boolean flag = false;
public synchronized void setInputStream( InputStream is )
br = new BufferedReader(new InputStreamReader(is));
flag = true;
public synchronized void setOutputStream( OutputStream is )
bw = new BufferedWriter(new OutputStreamWriter(is));
flag = true;
public synchronized void run()
int i = 0;
try
while( !flag )
wait();
flag = false;
while( (line = br.readLine()) != null )
try
if( sb == null )
sb = new StringBuffer();
newline = System.getProperty("line.separator");
else
sb.append(newline);
sb.append(line);
catch( Exception e )
e.printStackTrace();
i++;
if( br == null )
break;
catch( IOException ex )
ex.printStackTrace();
catch( InterruptedException ex )
ex.printStackTrace();
}Looks like a bug in StreamReaderThread. I can't see that it ever exits the wait() call since no one is calling notify or notify all.
Kaj -
PATH Setting using Runtime.exec() on a UNIX env?
Hi,
How do we set the PATH using Runtime.exec() on a UNIX Env?
I've tried the 'export' command and 'setenv' command but it throws an exception saying 'export' and 'setenv' not found.
objProcess = Runtime.getRuntime().exec("setenv PATH /opt/ibm/java2-x86_64-50/bin");+
Please suggest.
Thanks,
TanuYour experimenting with the stuff could shed light on the question, whether the outcome is influenced by the relying of the started process on elements of the starting environment other than PATH.
String[] envp=new String[1];
envp[0]="PATH=/jdk1.5/bin";
Runtime rt=Runtime.getRuntime();
Process proc=rt.exec("java Test",envp); -
Using Runtime exec() to open and close process like java or javac
Hi, I m a student who is learning IT and is wondering if
Runtime exec() can run and stop commands like java and javac?
Can someone post the code to do so here?Thank youWell, Here is my complete code:
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class StreamGobbler extends Thread
InputStream is;
String type;
StreamGobbler(InputStream is, String type)
this.is = is;
this.type = type;
public void run()
try
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
System.out.println(type + ">" + line);
} catch (IOException ioe)
ioe.printStackTrace();
class Program implements Runnable
Process proc;
String args[];
String[] cmd = new String[4];
boolean isGone=false;
public Program(String args[])
this.args=args;
public void run()
if (isGone==true)
try
Runtime.getRuntime().exec(cmd).destroy();
catch(IOException e)
System.out.println("Error: "+e.toString());
System.out.println("User abort");
public void start(String args[])
if (args.length < 1)
System.out.println("USAGE: java GoodWindowsExec <cmd>");
System.exit(1);
try
String osName = System.getProperty("os.name" );
if( osName.equals( "Windows NT" ) )
cmd[0] = "cmd.exe" ;
cmd[1] = "/C" ;
cmd[3] = args[0];
else if( osName.equals( "Windows 95" ) ||osName.equals( "Windows 98" ))
cmd[0] = "command.com" ;
cmd[1] = "/C" ;
cmd[2] = args[0];
cmd[3]=args[1];
Runtime rt = Runtime.getRuntime();
// System.out.println("Execing " + cmd[0] + " " + cmd[1]
// + " " + cmd[2]+" "+args[1]);
proc = rt.exec(cmd);
// any error message?
StreamGobbler errorGobbler = new
StreamGobbler(proc.getErrorStream(), "ERROR");
// any output?
StreamGobbler outputGobbler = new
StreamGobbler(proc.getInputStream(), "OUTPUT");
// kick them off
errorGobbler.start();
outputGobbler.start();
// any error???
// int exitVal = proc.waitFor();
//System.out.println("ExitValue: " + exitVal);
} catch (Throwable t)
t.printStackTrace();
public void destroy()
isGone=true;
class test1 implements ActionListener
String s[]={"c:\\jdk1.3\\bin\\java.exe","ContactProcessor1"};
GUI g=new GUI();
Program p=new Program(s);
public test1()
//didnt work
g.getStart().addActionListener(this);
g.getStop().addActionListener(this);
g.show();
public void actionPerformed(ActionEvent e)
if (e.getSource()==g.getStart())
p.start(s);
p.run();
if (e.getSource()==g.getStop())
p.destroy();
p.run();
public static void main(String args[])
test1 t = new test1();
class GUI extends JFrame
JButton start;
JButton stop;
public GUI()
super();
getContentPane().setLayout(new FlowLayout());
start=new JButton("start");
stop=new JButton("stop");
getContentPane().add(start);
getContentPane().add(stop);
setSize(100,100);
public JButton getStart()
return start;
public JButton getStop()
return stop;
} -
How to capture output of java files using Runtime.exec
Hi guys,
I'm trying to capture output of java files using Runtime.exec but I don't know how. I keep receiving error message "java.lang.NoClassDefFoundError:" but I don't know how to :(
import java.io.*;
public class CmdExec {
public CmdExec() {
public static void main(String argv[]){
try {
String line;
Runtime rt = Runtime.getRuntime();
String[] cmd = new String[2];
cmd[0] = "javac";
cmd[1] = "I:\\My Documents\\My file\\CSM\\CSM00\\SmartQ\\src\\E.java";
Process proc = rt.exec(cmd);
cmd = new String[2];
cmd[0] = "javac";
cmd[1] = "I:\\My Documents\\My file\\CSM\\CSM00\\SmartQ\\src\\E";
proc = rt.exec(cmd);
//BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader input = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
input.close();
catch (Exception err) {
err.printStackTrace();
public class E {
public static void main(String[] args) {
System.out.println("hello world!!!!");
}Please help :)Javapedia: Classpath
How Classes are Found
Setting the class path (Windows)
Setting the class path (Solaris/Linux)
Understanding the Java ClassLoader
java -cp .;<any other directories or jars> YourClassNameYou get a NoClassDefFoundError message because the JVM (Java Virtual Machine) can't find your class. The way to remedy this is to ensure that your class is included in the classpath. The example assumes that you are in the same directory as the class you're trying to run.
javac -classpath .;<any additional jar files or directories> YourClassName.javaYou get a "cannot resolve symbol" message because the compiler can't find your class. The way to remedy this is to ensure that your class is included in the classpath. The example assumes that you are in the same directory as the class you're trying to run. -
Spawn a java process using runtime.exec() method
Hi,
This is my first post in this forum. I have a small problem. I am trying to spawn a java process using Runtime.getRuntime().exec() method in Solaris. However, there is no result in this check the follwoing program.
/* Program Starts here */
import java.io.*;
public class Test {
public static void main(String args[]) {
String cmd[] = {"java", "-version"};
Runtime runtime = Runtime.getRuntime();
try{
Process proc = runtime.exec(cmd);
}catch(Exception ioException){
ioException.printStackTrace();
/* Program ends here */
There is neither any exception nor any result.
The result I am expecting is it should print the following:
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
Please help me out in this regard
Thanks in advance
Chotu.Yes your right. It is proc.getInputStream() or proc.getErrorStream(). That is what I get for trying to use my memory instead of looking it up. Though hopefully the OP would have seen the return type of the other methods and figured it out.
-
Parameter to shell script using Runtime.exec(string)
Hi all, ( Speciall hi to dheeraj tak )
Briefly : How do i pass an arguement to a non - java executible being called using Runtime.exec.
In detail : i am using Runtime.exec to call a shell script : The code is as follows:
String callAndArgs[] = {"/home/tom/jakarta-tomcat-4.1.24/webapps/dash/script.sh"};
try {
Runtime rt = Runtime.getRuntime();
Process child = rt.exec(callAndArgs);
This works properly & calls the shell script which in turn invokes some other executible (c file).
$HOME/midi/test/build/bin/<C-EXECUTIBLE>
Here i am specifying the name (say hello.exe ) . So far so good.
I want to make this happen dynamiclaly. so i need to pass the name of the executible as a parameter to the script.
To pass a parameter i hav to change the string to :-
String callAndArgs[] = {"/home/tom/jakarta-tomcat-4.1.24/webapps/dash/script.sh <C-EXECUTIBLE HERE>"};
and the script to
$HOME/midi/test/build/bin/$1 --- where $1 refers to argument 1. (C-EXECUTIBLE AGAIN).
This is giving an IO - Execption. Plz help
Code will be very helpful.
Thanx in advancesome 1 plz tell me the difference :-
This is the documentation of Runtime.exec that i found :-
1> exec
public Process exec(String command) throws IOException
Executes the specified string command in a separate process.
The command argument is parsed into tokens and then executed as a command in a separate process. This method has exactly the same effect as exec(command, null).
Parameters:
command - a specified system command
Complete refernce says : Process (String progName) ----- Executes a program specified by programname as a seperate process.
2> exec
public Process exec(String cmdarray[]) throws IOException
Executes the specified command and arguments in a separate process.
The command specified by the tokens in cmdarray is executed as a command in a separate process. This has exactly the same effect as exec(cmdarray, null).
Parameters:
cmdarray - array containing the command to call and its arguments.
Complete reference says : Process exec(String comLineArray[]) ---- Executes the command line specified bythe string in comLineArray as a seperate process.
This means that there is provision 4 command line arguments...
how do u use it then???????????????????????????? -
How to run db2 command by using Runtime exec
Hello
I am using java. When i am runing db2 command by using Runtime.exec( String cmd, String[] env ). I gave the environment path
DB2CLP=6259901
DB2DRIVER=D:\ibm\db2\java\db2java.zip
DB2HOME=D:\ibm\db2
DB2INSTANCE=DB2
DB2MMTOP=D:\CMBISS
but still I am getting error message
"DB21061E Command line environment not initialized"
after setting the above path in the cmd It is working fine. When i am trying thro java programm i am getting the above error. Can I get answer for this.
bhaski.Before you can execute DB2 commands you have to open a DB2 CLP. The following code will do so:
import java.io.IOException;
public class Db2 {
public static void main(String args[]) {
try {
Runtime rt = Runtime.getRuntime();
Process child = rt.exec("db2cmd");
child.waitFor();
catch (IOException io) {
io.printStackTrace();
catch (InterruptedException e) {
e.printStackTrace();
Maybe you are looking for
-
No products in Extension Manager
Hi, i'm a user of the Adobe Photoshop CS 6 (13.1.2) based on the subscription service in Creative Cloud. As you can see, my photoshop got the latest updates. I wanted to install the Adobe Exchange panel and ran into a lot problems. It wasn't possible
-
How do I stop iOS update notifications in the middle of the night?
How do I stop the iOS update notifications in the night. I do not need bright white update message while sleeping.
-
A network error occurred while attempting to sign in to convert PDF to excel.
I have tried to access this feature through internet explorer as well as firefox.....
-
Converting FM to PDF results in thumbnail-sized text area in the PDF
I'm having an issue with converting FM files to PDF. I'm using all the same settings I had been using previously, but now my PDFs appear with the text and images smooshed together in a thumbnail version of the source page. The PDF page size is 8.5 x
-
Picture does not turn when phone is turned sideways.
Who do I get pic on phone to turn sideways when phone is turned sideways?