java - 运行jar依赖的java类文件

标签 java class jar cp

java.lang.NoClassDefFoundError

我有一个java程序,它依赖于两个jar文件。 我使用命令编译程序:

javac -classpath jar1.jar:jar2.jar myprog.java 并且编译成功。

但是当我尝试使用命令运行程序: java -cp jar1.jar:jar2.jar myprog 时,它抛出 java.lang.NoClassDefFoundError 。请帮忙,我哪里错了?

我使用的是 ubuntu 10.04。

实际错误:

Exception in thread "main" java.lang.NoClassDefFoundError: userapps/SelectionTask_classes/SelectionTask
Caused by: java.lang.ClassNotFoundException: userapps.SelectionTask_classes.SelectionTask
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: userapps/SelectionTask_classes/SelectionTask. Program will exit.

其中SelectionTask是我编译成功后生成的类文件。

最佳答案

确保当前目录也在类路径中。尝试运行:

java -cp .:jar1.jar:jar2.jar myprog

如果您编译的类文件myprog.class位于当前目录中。

(这假设您的程序不在包中)。

关于java - 运行jar依赖的java类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211723/

相关文章:

java - Socket和ServerSocket有什么区别?

java - 将数字从Processing发送到Arduino

java - 使用 SSH2 和 URLrewrite 并出现 stackoverflow 错误

python - 为什么将类分配给 __getitem__ 不起作用?

java - Tomcat 无法实例化 org.apache.log4j.varia.LevelMatchFilter 类

java - 扫描仪类别和跳过模式

c# - 类中私有(private)字段值中的数据有多安全,如何使其更安全?

c++ - 类的常规实例可以调用常量函数吗?

java - 运行Eclipse导出的jar时出现"Could not find the main class"错误

java - 创建了 Simpl JAR 文件,导入到 Maven 项目,但 Maven 安装提示 "package does not exist"