【问题标题】:Compiled OK but NoClassDefFoundError when running编译正常但运​​行时出现 NoClassDefFoundError
【发布时间】:2009-11-23 00:34:22
【问题描述】:

我正在尝试使用 JavaMail API 发送电子邮件。 我从自解压二进制文件的主目录中安装了 jdk 1.5。我在 Ubintu 9.10

我使用下一个命令编译程序:

~/jdk1.5.0_22/bin/javac -classpath ~/jdk1.5.0_22/jre/lib/javamail-1.4.3/mail.jar:~/jdk1.5.0_22/jre/lib/jaf-1.1 .1/activation.jar hw.java

编译正常。如您所见,我已经指定了 mail.jar 和 activation.jar 的路径 现在我尝试使用下一个命令运行应用程序:

~/jdk1.5.0_22/bin/java -classpath ~/jdk1.5.0_22/jre/lib/jaf-1.1.1/activation.jar:~/jdk1.5.0_22/jre/lib/javamail-1.4 .3/mail.jar:。 HelloWorldApp

我得到一个异常 java.lang.NoClassDefFoundError: javax/mail/Address

为什么编译时能找到类,运行时却找不到? 如何正确运行我的应用?

提前致谢

【问题讨论】:

    标签: java


    【解决方案1】:

    该课程应该来自您的mail.jar。我不确定您的类路径是否被正确解析。波浪号 (~) 是一个 shell 函数,在发送到 Java 进程之前需要扩展。您是否尝试过删除 ~ 并替换为 /home/{whatever} ?我怀疑是这个问题。

    【讨论】:

    • 类来自mail.jar,不是激活
    • 是的,你是对的。我更换了〜,效果很好。虽然它编译好 ~
    • 我注意到你的类路径在编译和运行场景之间是颠倒的。不确定这是否会有所不同...
    • 没有区别。只是它抱怨activation.jar而不是mail.jar中的某些类
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 2011-06-26
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多