2014-12-13 70 views
1

我的项目使用javafx jar,并通过maven中的系统范围包含它。它在我的本地工作正常。现在,由于jar是通过系统范围包含的,因此它不包含在fat jar中,而且,当我部署该胖jar时,它将为javafx类提供ClassNotFound Exception。为什么无法在部署项目的机器上访问javafx jar,因为javafx也位于该机器的同一个lib文件夹中?系统作用域Jar抛出类未找到异常

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

更新:刚注意到从本地运行jar,抛出了这个错误,虽然在eclipse中运行良好。

回答

0

可能有许多原因,这是发生:

1)当你在JavaFX的罐子被复制,权限是错了,所以它不是通过运行Java程序的过程中可读。

2.)运行java程序的用户在类路径中没有JAVA_HOME/lib文件夹。如果您将程序作为服务级别用户运行,但将java作为另一用户安装,则可能会发生这种情况。有时可能不会为其配置文件中的其他用户设置JAVA_HOME。 3)你的目标jar的不同版本可能会移动类,这样使用版本1.0运行就可以运行,但2.0会导致类没有发现异常,因为类已经被移动到新的包中。确保你在这两个地方都有相同版本的javafx jar。