Install4j:在 CentOS 7 服务器中执行安装程序无法启动并出现异常
Install4j: Executing installer in CentOS 7 Server fails to start with exception
如果我的 Unix 系统没有任何可用的 X11 服务器或 GUI 模式,我有一个安装程序应该回退到控制台模式。以下是我为Installer设置的配置:
现在根据后备选项,如果启用了控制台执行,它应该会自动 运行 即使我没有 运行 安装程序使用 [installer] -c
命令(它也应该是正常用例)。但不幸的是,每当我直接在控制台模式下执行安装程序时,都会抛出异常。异常日志如下:
java.lang.NoClassDefFoundError: java.awt.Container
at com.install4j.runtime.installer.frontend.headless.AbstractHeadlessScreenExecutor.init(AbstractHeadlessScreenExecutor.java:67)
at com.install4j.runtime.installer.frontend.headless.ConsoleScreenExecutor.<init>(ConsoleScreenExecutor.java:24)
at com.install4j.runtime.installer.frontend.headless.InstallerConsoleScreenExecutor.<init>(InstallerConsoleScreenExecutor.java:6)
at com.install4j.runtime.installer.Installer.getScreenExecutor(Installer.java:88)
at com.install4j.runtime.installer.Installer.runInProcess(Installer.java:57)
at com.install4j.runtime.installer.Installer.main(Installer.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:81)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:62)
我已经尝试使用 Install4j 6.1.4,然后也将其升级为 7.0.3,行为是一样的。我的 Linux 安装是 CentOS 7 Server,安装程序捆绑了 Java JRE 1.7.80。
我的 CentOS 中是否缺少 install4j 所需的任何内容?或者我是否必须在我的安装程序中配置任何其他内容才能正常运行?我尝试使用 -c
并且它在那种情况下有效。
回退当前尝试初始化 window 并且失败切换到无头模式。在您的系统上,headless 模式在这种情况下似乎不起作用。
我将使用 GraphicsEnvironment.isHeadless()
添加一种不同类型的无头检查,请向 support@ej-technologies.com 寻求可用的构建。
如果我的 Unix 系统没有任何可用的 X11 服务器或 GUI 模式,我有一个安装程序应该回退到控制台模式。以下是我为Installer设置的配置:
现在根据后备选项,如果启用了控制台执行,它应该会自动 运行 即使我没有 运行 安装程序使用 [installer] -c
命令(它也应该是正常用例)。但不幸的是,每当我直接在控制台模式下执行安装程序时,都会抛出异常。异常日志如下:
java.lang.NoClassDefFoundError: java.awt.Container
at com.install4j.runtime.installer.frontend.headless.AbstractHeadlessScreenExecutor.init(AbstractHeadlessScreenExecutor.java:67)
at com.install4j.runtime.installer.frontend.headless.ConsoleScreenExecutor.<init>(ConsoleScreenExecutor.java:24)
at com.install4j.runtime.installer.frontend.headless.InstallerConsoleScreenExecutor.<init>(InstallerConsoleScreenExecutor.java:6)
at com.install4j.runtime.installer.Installer.getScreenExecutor(Installer.java:88)
at com.install4j.runtime.installer.Installer.runInProcess(Installer.java:57)
at com.install4j.runtime.installer.Installer.main(Installer.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:81)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:62)
我已经尝试使用 Install4j 6.1.4,然后也将其升级为 7.0.3,行为是一样的。我的 Linux 安装是 CentOS 7 Server,安装程序捆绑了 Java JRE 1.7.80。
我的 CentOS 中是否缺少 install4j 所需的任何内容?或者我是否必须在我的安装程序中配置任何其他内容才能正常运行?我尝试使用 -c
并且它在那种情况下有效。
回退当前尝试初始化 window 并且失败切换到无头模式。在您的系统上,headless 模式在这种情况下似乎不起作用。
我将使用 GraphicsEnvironment.isHeadless()
添加一种不同类型的无头检查,请向 support@ej-technologies.com 寻求可用的构建。