我创建了一个小应用程序,其中包含一个名为JavaFX的外部程序包。该软件包包含4个jar文件。 当我从命令行创建一个jar到当前目录时,jar执行OK(从4个jar中导入类)。但是当我从另一个目录移动该jar文件时,该文件将不会执行。换句话说,创建的jar似乎无法在那些jar文件(JavaFX jar)中找到类?
以下是清单文件:
Main-Class: QuizMenu
Class-Path:
deploy.jar
javaws.jar
jfxrt.jar
plugin.jar
文本文件在jar的每一行的开头和结尾都包含一个空格,最后一行包含一个最后一个回车符(除了最后一行之外的每一行都不包含回车符)。 Main-Class:
标题也可以正常工作。 (只是类路径似乎不起作用)。
任何人都可以识别文件的问题吗?
答案 0 :(得分:0)
建议
你不应该参考其中的任何一个(deploy.jar javaws.jar jfxrt.jar plugin.jar
)
你的mainifest文件中的jar文件。
JavaFX打包工具
相反,您应该使用JavaFX识别deployment tools,例如:
上述工具将适当地打包您的应用程序以使用JavaFX。
背景
如果您尝试将JavaFX,Java部署和Java插件jar文件与您的应用程序捆绑在一起,那么当您在不同的Java版本(例如Java 8或9)上运行应用程序时,它可能无法正常运行JavaFX所有未来版本都将被定义为Java运行时平台的一部分,而不是作为单独安装的库或库,可以与独立于Java运行时的其他应用程序捆绑在一起的应用程序。
此外,诸如jfxrt.jar之类的jar文件依赖于许多本机动态链接库(.so,.dll等),这些库因平台而异,并且具有32位和64位变体。 jfxrt.jar的版本必须与底层本机库的版本匹配(并且适当平台的底层本机库必须可用于动态加载链接器),以便jfxrt.jar(例如JavaFX)正常运行。