Jar文件的清单类路径

时间:2013-03-22 18:46:48

标签: java manifest

我创建了一个小应用程序,其中包含一个名为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:标题也可以正常工作。 (只是类路径似乎不起作用)。

任何人都可以识别文件的问题吗?

1 个答案:

答案 0 :(得分:0)

建议

你不应该参考其中的任何一个(deploy.jar javaws.jar jfxrt.jar plugin.jar) 你的mainifest文件中的jar文件。


JavaFX打包工具

相反,您应该使用JavaFX识别deployment tools,例如:

  1. javafxpackager
  2. JavaFX ant tasks
  3. JavaFX maven plugin
  4. JavaFX gradle plugin
  5. NetBeans JavaFX project
  6. 将来可能出现的其他兼容工具。
  7. 上述工具将适当地打包您的应用程序以使用JavaFX。


    背景

    如果您尝试将JavaFX,Java部署和Java插件jar文件与您的应用程序捆绑在一起,那么当您在不同的Java版本(例如Java 8或9)上运行应用程序时,它可能无法正常运行JavaFX所有未来版本都将被定义为Java运行时平台的一部分,而不是作为单独安装的库或库,可以与独立于Java运行时的其他应用程序捆绑在一起的应用程序。

    此外,诸如jfxrt.jar之类的jar文件依赖于许多本机动态链接库(.so,.dll等),这些库因平台而异,并且具有32位和64位变体。 jfxrt.jar的版本必须与底层本机库的版本匹配(并且适当平台的底层本机库必须可用于动态加载链接器),以便jfxrt.jar(例如JavaFX)正常运行。