情况如下:我有一个使用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,但那里的解决方案和评论对我没有帮助: 我已从命令行执行.exe,重定向输出,但输出文件始终为空。我已经对Netbeans中的主要类设置进行了三重检查,这是正确的。此外,我的外部库是正确生成的,所以我不必调整我的build.xml。
编辑:其他信息
我打开了JAR,主要类是它应该在的位置。清单也是正确的。 Pic附加。说实话,既然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]
答案 0 :(得分:0)
我会首先检查jar中包含的类,并确保RCWStats类位于正确的位置。检查清单还可以查看主类定义的内容,以及它与NetBeans本身的期望值相匹配。并确保定义了运行时类路径。如果没有看到jar的内容,知道你的类路径设置等,就很难提出更多建议。如果你可以修饰它们,也许它可能变得更清晰,更容易回答?感谢。