Java 10 可执行文件在安装后不会执行

标签 java inno-setup java-10 javapackager

我有一个奇怪的问题 - 我有一个 javafx 程序,我使用 maven 编译和打包(对于 Windows,我使用 Inno setup 创建安装包)。从 Java 8 升级到 Java 10(更新 pom.xml 文件中的插件并更新配置)后,构建成功完成。

问题是在 Windows 上安装该软件包后 - 启动该程序的 exe 文件将无法正常运行。它启动了一瞬间,然后停止。

奇怪的部分:如果我尝试从 target\bundle 文件夹(maven 为打包器准备文件的文件夹)运行相同的 exe - 它运行得很好!

这两个文件夹 - target\bundle 和 Programs files(x86)/vendor/appname 是相同的(文件和配置文件内容)。

我检查了 Programs files(x86)/vendor/appname 下 exe 的权限,它们看起来很好。

我正在 Windows 8.1 机器上进行测试(在其他显示相同行为的机器上进行测试,这使我相信这是一个真正的问题,而不是我的测试机器配置错误)。

相同的脚本用于为 MAC OSX 创建安装包,并且在 OSX 上一切正常,因此这不是代码问题。

关于造成这种情况的原因以及如何解决它有什么想法吗?

其他信息:

  1. 自从迁移到 Java 10 以来,这种情况才开始发生。Java 8 和 9 运行得很好。

  2. 我的应用程序不会写入程序文件安装文件夹中的任何文件。配置和日志文件仅写入 %user%/AppData 文件夹中。

最佳答案

我通过使用 Inno 安装向导手动创建一个工作安装包,然后将其与我没有的安装包进行比较,发现了问题。

完成此操作后,我将向导创建的 iss 文件(Inno 配置文件)与唯一不起作用的文件进行了比较。事实证明,充气城堡 jar 文件造成了问题。先前版本的 iss 脚本将它们复制到 lib/ext 文件夹,这为 java 类解析器创建了重复的类路径问题,因为有两个 jar 副本。

这在 Java 9 和 Java 10 中是不需要的。从 iss 文件中删除手动添加充气城堡 jar 修复了该问题。

希望这对将来的人有帮助:)

关于Java 10 可执行文件在安装后不会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50040252/

相关文章:

java - 无法使用 Maven 编译简单的 Java 10/Java 11 项目

java - 面板大于 java 中的框架

java - 在 Java 中连接两个 ByteBuffer

java - 使用 HtmlUnit 访问动态网站

windows - 我怎么能说 64 位,使用 c :\program files (x86) and for 32-bit use the c:\program files?

java - 如何解决 java.lang.NoClassDefFoundError : javax/xml/bind/JAXBException

java - 解析大型 xlsx 文件,日期格式案例

inno-setup - 删除 Windows 框架 - Inno Setup

installation - Inno Setup - 条件 DisableDirPage

java - 如何解决java.lang.NoClassDefFoundError : javax/xml/bind/JAXBException