java - 系统范围 Jar 引发未找到类异常

标签 java maven javafx classnotfoundexception

我的项目使用 javafx jar 并将其包含在 Maven 的系统范围内。在我本地效果很好。现在,由于该 jar 包含在系统范围内,因此它不包含在 fat jar 中,当我部署该 fat jar 时,它会为 javafx 类提供 ClassNotFound 异常。为什么它无法访问我部署项目的计算机上的 javafx jar,因为 javafx 也位于该计算机的同一 lib 文件夹中?

PS:我手动将 javafx jar 复制到该机器的 JAVA_HOME/lib/文件夹中。

更新:刚刚注意到从本地运行 jar 本身会抛出该错误,尽管从 eclipse 运行良好。

最佳答案

发生这种情况的原因可能有多种:

1.) 当您复制 javafx jar 时,权限错误,因此运行 java 程序的进程无法读取它。

2.) 运行 java 程序的用户在类路径上没有 JAVA_HOME/lib 文件夹。如果您以服务级别用户身份运行程序,但以另一个用户身份安装 java,则可能会发生这种情况。有时,可能没有在其他用户的个人资料中设置 JAVA_HOME。

3.) 目标 jar 的不同版本可能会移动类,因此使用版本 1.0 运行将可以工作,但 2.0 将导致类未找到异常,因为该类已移动到新包中。确保两个地方都有相同版本的 javafx jar。

关于java - 系统范围 Jar 引发未找到类异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27460432/

相关文章:

java - 显示速度脚本的空值而不是空

java - JTree 节点重命名保留用户对象

Maven All-of-a-sudden 接收权限被拒绝

JavaFx JFoenix Java9

java - 如何锁定 JavaFX 全屏模式?

java - 为什么打印者将我的信息分成两个字符串?

web-services - com.sun.jersey.api.container.ContainerException : The ResourceConfig instance does not contain any root resource classes

java - 多模块项目的 Sonar maven jacoco 代码覆盖率

java - 使用 JfxPanel 从 JavaFX WebView 打印

java - 在其 TreeView 中显示 ITreeContentProvider 的 "input-element"