【问题标题】:Packaging a JavaFX8 application with Netbeans使用 Netbeans 打包 JavaFX8 应用程序
【发布时间】:2016-02-23 13:30:02
【问题描述】:

情况如下:我有一个使用 Netbeans 8.1 制作的 JavaFX8 应用程序。应用程序在 Netbeans 中运行/调试没有问题。当我将应用程序打包为 .EXE(或 .MSI,同样的错误)时,我得到了没有错误的 .exe 安装文件。安装程序使用预期的文件夹结构安装应用程序:

+-- RCWStats
\+-- app
     \+--lib (contains all needed jars)
     \---RCWStats.jar
     \---RCWStats.cfg
\+--runtime
    \+--bin
    \+--lib
\---RCWStats.exe

当我尝试通过执行 RCWStats.exe 文件来运行应用程序时,我得到了这些:

但是,当我在 /app 中执行 RCWStats.jar 时,它开始时没有错误,我觉得这很令人费解。

我在 SO 中发现了一个类似的问题,即this one,但那里的解决方案和 cmets 并没有帮助我: 我已经从命令行执行了 .exe,重定向输出,但输出文件始终为空。我已经三重检查了 Netbeans 中的主类设置,它是正确的。此外,我的外部库生成正确,因此我不必调整 build.xml。

编辑:附加信息

我打开了 JAR,主类是它应该在的地方。清单也是正确的。附图片。老实说,由于 JAR 工作正常,我怀疑问题出在 .exe 中,它以某种方式找不到或正确执行 JAR。由于打包过程或多或少是一个黑匣子,我有点卡住了。

Manifest-Version: 1.0
Implementation-Title: RCWStats
Implementation-Version: 1.0
Permissions: sandbox
Codebase: *
JavaFX-Version: 8.0
Class-Path: lib/eclipselink.jar lib/iText-4.2.0-com.itextpdf.jar lib/j
 avax.persistence_2.1.0.v201304241213.jar lib/mysql-connector-java-5.1
 .6-bin.jar lib/org.eclipse.persistence.jpa.jpql_2.5.2.v20140319-9ad6a
 bd.jar
Created-By: JavaFX Packager
Implementation-Vendor: jalexakis
Main-Class: main.java.RCWStats

编辑 2:RCWStats.cfg

[Application]
app.name=RCWStats
app.mainjar=RCWStats.jar
app.version=1.0
app.preferences.id=main/java
app.mainclass=main/java/RCWStats
app.classpath=lib/eclipselink.jar;lib/iText-4.2.0-com.itextpdf.jar;lib/javax.persistence_2.1.0.v201304241213.jar;lib/mysql-connector-java-5.1.6-bin.jar;lib/org.eclipse.persistence.jpa.jpql_2.5.2.v20140319-9ad6abd.jar
app.runtime=$APPDIR\runtime
app.identifier=main.java

[JVMOptions]

[JVMUserOptions]

[ArgOptions]

【问题讨论】:

  • 关于 exe 文件的输出行为:have executed the .exe from the command line, redirecting output, but the output file is always empty.:您对此无能为力,我已经对此进行了深入研究:stackoverflow.com/questions/31537869/…
  • 请通过提供生成的app/RCWStats.cfg中的内容来编辑您的答案
  • 您能提供一个可重现的项目吗? stackoverflow.com/help/mcve
  • @FibreFox 我将 RCWStats.cfg 编辑到问题中。但是我无法重现这种行为:我在 Netbeans 中启动的所有其他 JavaFX 项目都按预期进行安装和运行。

标签: java netbeans javafx-8 netbeans-8


【解决方案1】:

我会首先检查 jar 中包含的类,并确保 RCWStats 类位于正确的位置。还要检查清单以查看主类的定义以及它是否符合您对 NetBeans 本身的期望。并确保定义了您的运行时类路径。如果没有看到 jar 的内容,不知道你的类路径设置等,很难提出更多建议。如果你能对这些进行修饰,也许它会变得更清晰,更容易回答?谢谢。

【讨论】:

  • 是的,看起来 jar 没问题,虽然 main.java 的包不寻常。如果您可以运行 java -jar RCWStats.jar 并点击您的主类,那么它的定义清晰准确。就如何调用您的类而言,.exe 中的某些内容似乎是错误的。我同意你的看法。
  • 我可以选择检查罐子的方式。它也发生在我身上,运行正常的 jar 是有效的,但是当不得不与依赖项(其他 JAR)作斗争时,没有更好的方法在你的 app 文件夹中调用 java -jar RCWStats.jar。 MANIFEST 提供了引导 javafx 应用程序的所有信息,因此需要运行。从 IDE 启动时,运行时中可能缺少一些 JAR
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 2015-06-27
  • 2016-08-17
  • 2013-09-28
  • 1970-01-01
  • 2010-12-28
  • 2013-11-28
相关资源
最近更新 更多