但是,这是我受过良好教育的猜测。
您正在尝试将整个命令运行到java字符串中,并且java解释器无法将它们识别为不同的参数。
尝试将它们全部包装在String []中
所以代替
Runtime.getRuntime().execute("/usr/bin/java -classpath "/home/geo" Geoline");
尝试:
Runtime.getRuntime().execute( new String[]{ "/usr/bin/java","-classpath","/home/geo","Geoline"});
或者,您可以发布您的实际代码,我们可以看到正在发生的事情。
编辑
这是我的尝试。我创建了RunIt.java类,该类基本上就是我建议的Runtime.exec,还有一个Hello.java,它几乎表示Hello + args [0]
这是输出:
$cat RunIt.java import java.io.*;public class RunIt{ public static void main( String [] args ) throws IOException { Process p = Runtime.getRuntime().exec( args ); BufferedReader reader = new BufferedReader( new InputStreamReader ( p.getInputStream() ) ); String line = null; while( ( line = reader.readLine() ) != null ) { System.out.println( line ); } reader.close(); }}$cat Hello.java public class Hello { public static void main( String [] args ) { System.out.println("Hola: " + ( args.length > 0 ? args[0] : " a nadie" ) ); }}$javac RunIt.java $java RunIt javac Hello.java $java RunIt java Hello MundoHola: Mundo$
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)