小编bos*_*oop的帖子

Java类存在于类路径中,但启动失败,错误:无法找到或加载主类

我有一个foobar.jar包含以下两个类的jar文件:

public class Foo {

    public static void main(String[] args) {
        System.out.println("Foo");
    }
}
Run Code Online (Sandbox Code Playgroud)

另一个类看起来像这样:

import javax.batch.api.chunk.ItemProcessor;

public class Bar implements ItemProcessor {

    public static void main(String[] args) {
        System.out.println("Bar");
    }

    @Override
    public Object processItem(Object item) throws Exception {
        return item;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用以下命令执行程序,程序将按预期运行并打印Foo:

$ java -cp foobar.jar Foo
Foo
$ 
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试使用类中的main方法启动程序Bar,JVM会输出启动错误并退出:

$ java -cp foobar.jar Bar
Error: Could not find or load main class Bar
$
Run Code Online (Sandbox Code Playgroud)

这是同样的错误,就好像我会尝试使用不在jar中的类来启动程序,例如

$ java -cp foobar.jar BarNotThere
Error: …
Run Code Online (Sandbox Code Playgroud)

java jvm classpath classnotfoundexception classloading

1
推荐指数
1
解决办法
7164
查看次数