当前位置: 首页 > 面试题库 >

运行时编译正常,但出现NoClassDefFoundError

边永贞
2023-03-14
问题内容

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

编译OK。如您所见,我已经指定了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

为什么它在编译时可以找到类,而在运行时却找不到呢?如何正确运行我的应用程序?

提前致谢


问题答案:

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



 类似资料:
  • 问题内容: 我在主软件包的一个目录下有一些文件: main.go config.go server.go 当我这样做时:“执行构建”程序将完美构建并运行良好。当我这样做时:“ go run main.go”失败了。 输出: 未定义的符号是结构,并且大写,因此应将其导出。 我的Go版本:go1.1.2 linux / amd64 问题答案: 这应该工作 Go run需要一个文件或多个文件,并且它仅合

  • 我正在尝试为协议缓冲区构建Java运行时库。我在Windows和OS X上都犯了错误,因为我遵循了Protocol Buffers项目(从中克隆而来)中Java目录下的自述指令https://github.com/google/protobuf). 当我在protobuf/java目录下运行

  • 我在尝试导出独立应用程序时遇到问题。 当我使用eclise执行它时,它运行正常,但当我试图导出到可运行的jar时,它会给我一些错误。 我的坚持。xml看起来像 它位于src/META-INF/persistence。xml 从终端运行时得到的堆栈跟踪是: 在爪哇。朗,反思一下。方法在组织中调用(未知源)。日食jdt。内部的jarinjarloader。罐式装载机。main(jarsrcloader

  • 例如如下代码: SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); Date date = sdf.parse("abcd"); 这段代码会抛出ParseException,而它是编译时异常,为什么编译阶段不报错,运行时报错?

  • 我成功地编写了一个带有点精灵的标准基本变换反馈粒子系统。没有闪烁,粒子从一个缓冲区更新到下一个缓冲区,然后进行渲染,然后输出缓冲区在下一次迭代时成为输入缓冲区。所有GPU端,标准转换反馈。精彩的一个大问题是:只有在我不使用gl_PointCoord的情况下,它才有效。在我的点精灵中使用平面颜色效果很好。但我需要gl_PointCoord做任何有意义的事。我所有的着色器,不管是否使用gl_Point