我尝试使用Runtime但有一些问题。我想使用Runtime.exec("java -cp")
。一个是jar文件,另一个是类文件。类文件是指jar文件但不包括在内。以下是我的代码
Runtime rt = Runtime.getRuntime();
Process proc = null;
System.out.println(Run.class.getResource("").getPath());
try {
proc = rt.exec("java -cp c:/data/hh.jar; com/list/shark/Whale");
} catch (IOException e1) {
e1.printStackTrace();
}
结果是“无法找到或加载默认类”。我真的想知道位置执行运行时在哪里以及如何唯一这个问题。
PS在本地cmd中,命令正在运行。
答案 0 :(得分:0)
您使用的命令是错误的。
从命令行运行jar:
java -jar <jar-file-name>.jar
如果您没有在jar中创建清单文件,java -jar
将无效。
然后,您需要在命令中明确指定FQP(完全限定的类路径):
java -cp <fully.qualified.class.path>
如何创建和运行您可能想要查看的jar <{3}}
答案 1 :(得分:0)
我为遇到同样问题的人发布了答案
只是做
RunTime.exec("cmd /c dir");
用于找出执行当前路径
并从exec(command)更改为exec(command,env,file)。
创建文件并输入执行当前路径
File file = new File("c:/Test/");
RunTime.exec("java -cp c:/data/hh.jar; com.list.shark.Whale",null,file);
这是执行类文件引用其他jar文件的成功。