我正在使用javafx v8.0.40开发桌面应用程序。我用inno 5创建了一个exe文件。当我在我的计算机上运行exe文件时,它安装并运行没有任何问题。另一方面,当我尝试在其他计算机上安装并运行它时,在安装结束时会弹出窗口对话框:“错误调用方法”,我单击“确定”。另一个窗口弹出“无法启动jvm”。我搜索了整个互联网,但我找不到这个主题。我希望我能解决这个问题。 先谢谢你。
我正在使用javafx v8.0.40开发桌面应用程序。我用inno 5创建了一个exe文件。当我在我的计算机上运行exe文件时,它安装并运行没有任何问题。另一方面,当我尝试在其他计算机上安装并运行它时,在安装结束时会弹出窗口对话框:“错误调用方法”,我单击“确定”。另一个窗口弹出“无法启动jvm”。我搜索了整个互联网,但我找不到这个主题。我希望我能解决这个问题。 先谢谢你。
我遇到了同样的问题;以下对我有用,并帮助我弄清楚那些爆炸的“错误调用方法”。和“无法启动JVM”对话框:
.jar
文件
AppData\Local\{ApplicationTitle}\app
(快捷方式:在浏览器中键入%appdata%);如果你的项目名为HelloWorld,你会发现 HelloWorld.jar
cd
使用命令提示符到同一目录).jar
通过命令行
java -jar "HelloWorld.jar"
并击中 输入Tadah! 看看你的隐藏异常(存在“错误调用方法。”所以模糊地试图与你沟通)。 *
如果你的问题类似于 矿 它源于项目之间的文件结构差异 out
文件夹和安装目录,这就是为什么程序在编辑器中编译得很好并且构建得很好 - 在构建之前没有问题,文件结构有点不同。
*如果在通过命令行运行它时没有得到任何信息,请查找在此期间可能发生的任何错误 initialize()
方法;这就是你的问题所在。 您可以使用弹出异常对话框在运行时公开任何异常,如图所示 类似的问题,这里。
即使这个问题有点旧 - 今天我遇到了完全相同的问题,找不到任何解决方案来搜索那些错误消息。
问题几乎完全相同: 使用java 8构建JavaFX应用程序(在dev pc上正常运行)并使用Inno 5打包到本机安装程序(exe)。 应用程序在我们的一些机器上运行正常 - 在其他机器上运行失败,与错误消息完全相同:
在应用程序启动时,fxml加载程序加载第一个视图控制器并调用其“初始化”方法。如果 - 在initialize内 - 抛出了一个非常规异常,应用程序崩溃并显示这两个窗口错误消息。
希望这会帮助一些喜欢我的人也在努力解决这个问题。
J.Dürr的回应(16年6月8日回答9:58)帮助解决了我的问题 调用方法时出错 & 无法启动JVM 问题。我使用以下代码来追踪问题,结果证明这是一个错误的FXML资源路径:
public static void main(final String[] taArgs)
{
try
{
Main.launch(taArgs);
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage());
try
{
PrintWriter pw = new PrintWriter(new File("<somefilename.txt>"));
e.printStackTrace(pw);
pw.close();
}
catch (IOException e1)
{
e1.printStackTrace();
}
}
}
我无法解决问题,但我找到了解决方法。我使用记事本创建批处理文件来启动应用程序。我先用过 cd
到达目录 .jar
文件然后使用 java -jar
启动应用程序。它应该看起来像这样:
cd C:\[wherever your project folder is located]\[name of project]\dist
java -jar [name of project].jar
把它保存为 .bat
在桌面上的文件,启动批处理文件,您的程序将启动!