编译好但运行时为NoClassDefFoundError

时间:2009-11-22 16:25:10

标签: java

我正在尝试使用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 0.3 /的mail.jar:。 HelloWorldApp的

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

为什么在编译时会找到类而在运行时却无法找到它? 如何正确运行我的应用程序?

提前致谢

1 个答案:

答案 0 :(得分:2)

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