我试图从java代码运行一个jar文件,但不幸的是没有成功。 关于jar文件的一些细节:
我到目前为止尝试做什么:
JAR文件项目。
其他JAVA计划
尝试使用以下命令运行:
Runtime.getRuntime().exec("javaw -jar "C:\\Software\\program.jar");
&安培;&安培;
Runtime.getRuntime().exec("javaw -jar "C:\\Software\\program.jar" "C:\\Software");
jar文件打开很好,但他不知道并识别他的内部文件夹和文件(我上面提到的相同“文件夹”)。 简而言之,它无法识别其根文件夹。
尝试使用ProcessBuilder运行
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start", "javaw", "-jar", "C:\\Software\\program.jar");
pb.directory(new File("C:\\Software"));
try {
pb.start();
} catch (IOException ex) {
}
在某些PC的中工作正常,但在其他电脑中它不起作用,我收到一条错误消息:“无法找到主类” **如果我通过双击它的工作来运行jar,那就是当然。
那么如何从其他java程序运行jar文件?
答案 0 :(得分:1)
使用。this变体.exec指定工作文件夹作为第三个参数。 (在您的示例中,您始终只使用一个参数。)
exec("javaw -jar "C:\\Software\\program.jar", null, "C:\\Software");
答案 1 :(得分:0)
您可以尝试将其称为下面的内容。有两种类型的叫它。
public class JarExecutor {
public static void main(String[] args) throws IOException, InterruptedException {
//这是第一种打电话方式。
Process proc=Runtime.getRuntime().exec(new String[]{"java","-jar" ,"C:\\Users\\Leno\\Desktop\\JarsPractise\\JarsPrac.jar"});
//这是第二种打电话方式。
Process proc=Runtime.getRuntime().exec(new String[]{"java","-cp","C:\\Users\\Leno\\Desktop\\JarsPractise\\JarsPrac.jar","com.shiva.practise.FloydTriangle"});
proc.waitFor();
BufferedInputStream is=new BufferedInputStream(proc.getInputStream());
byte[] byt=new byte[is.available()];
is.read(byt,0,byt.length);
System.out.println(new String(byt));
}
}