无法找到或加载默认类

时间:2016-12-23 08:15:24

标签: java runtime.exec

我尝试使用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中,命令正在运行。

2 个答案:

答案 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文件的成功。