编译好但运行时NoClassDefFoundError

我正在尝试使用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的

我得到一个exceptionjava.lang.NoClassDefFoundError:javax / mail / Address

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

提前致谢

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