标签: install4j

NoSuchMethodError:com.sun.glass.ui.win.WinApplication.staticScreen_getScreens中的<init>

自从升级到install4j 7.0.5和Java 10以来,在Windows上运行我们的应用程序的用户越来越频繁地报告应用程序抛出

java.lang.NoSuchMethodError: <init>
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
    at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Unknown Source)
    at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Unknown Source)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)


UiLauncher (WAITING)
    at java.base@10.0.1/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@10.0.1/java.util.concurrent.locks.LockSupport.park(Unknown Source)
    at java.base@10.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
    at java.base@10.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
    at java.base@10.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
    at java.base@10.0.1/java.util.concurrent.CountDownLatch.await(Unknown Source)
    at platform/javafx.graphics@10.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
    at platform/javafx.graphics@10.0.1/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
    at platform/javafx.graphics@10.0.1/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
    at platform/javafx.swing@10.0.1/javafx.embed.swing.JFXPanel.initFx(Unknown Source)
    at platform/javafx.swing@10.0.1/javafx.embed.swing.JFXPanel.<init>(Unknown Source)
    at java.base@10.0.1/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base@10.0.1/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base@10.0.1/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base@10.0.1/java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.base@10.0.1/java.lang.Class.newInstance(Unknown Source)
    at app//...
Run Code Online (Sandbox Code Playgroud)

通过install4j创建exe文件启动应用程序时.通过反射创建javafx.embed.swing.JFXPanel实例来触发错误:

Class.forName("javafx.embed.swing.JFXPanel").newInstance();
Run Code Online (Sandbox Code Playgroud)

我们目前怀疑由于某种原因加载了不兼容的DLL(glass.dll似乎包含stacktrace中提到的本机方法).

有谁知道如何防止这个错误?例如,是否有办法将通过install4j生成的exe执行应用程序时使用的java.library.path限制为嵌入在安装程序中并随应用程序本地安装的Java运行时环境?根据一个用户,如果使用"手动"启动应用程序,则不会发生错误

java …
Run Code Online (Sandbox Code Playgroud)

java windows javafx install4j java-10

9
推荐指数
1
解决办法
995
查看次数

Install4j J​​ava最低版本似乎不起作用

我们正在使用Install4j 7.0.6,并将Java最低版本设置为“ 10.0.1”。我们将Java 10.0.1捆绑到媒体文件中。当我们用Java 9 VM替换随附的JVM时,我们的应用程序仍然启动。我们只是误解了Java最低版本的功能还是使用了错误的版本格式,还是在Install4j 7.0.6中损坏了?

java install4j java-10

7
推荐指数
1
解决办法
76
查看次数

使用Install4J下载并安装其他应用程序

我正在使用Install4J为我的应用程序构建一个安装(让我们称之为MainApp),它运行良好.

为了能够使用MainApp,您还需要安装我的第二个应用程序(让我们称之为SecondApp).

我的问题是这个.有没有办法让Install4J首先安装MainApp,并且作为安装的最后一步下载SecondApp(位于Web服务器上的exe文件)并执行它?

install4j

6
推荐指数
1
解决办法
1475
查看次数

在Windows上监听"用我的java应用程序打开文件"事件

标题令人困惑,但不知道如何用几句话来解释:

我有一个读取*.example文件的java应用程序.我还添加了一个文件关联,因为install4j当用户双击任何扩展名为*.example的文件时,我的应用程序就会启动

似乎install4j发送文件路径args[]所以应该很容易打开该文件并在我的应用程序中显示它.但是如果应用程序已经运行会发生什么?我只能允许应用程序的一个实例,所以我怎么知道用户正在打开文件?

我发现了这个:http://resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

但我仍然不明白我应该如何使用它以及我应该在我的应用程序中添加什么来收听此事件.我在哪里可以找到一个例子?

java file-association install4j

6
推荐指数
1
解决办法
1114
查看次数

向Install4j安装的应用程序注册URL协议/ URI方案吗?

我们通过Install4j为我们的一个应用程序提供了一个跨平台的安装程序。我们希望能够将已安装的应用程序注册到URL协议。可以用Install4j完成吗?

有一点背景:我们的应用程序是XMPP客户端。当用户调用以“ xmpp ” 开头的URL时,我们希望启动它。这类似于单击以“ http”开头的链接时打开浏览器的方式,以及单击以“ mailto”开头的链接时打开邮件客户端的方式。

似乎有许多特定平台的解决方案,但是由于我们的应用程序是跨平台的应用程序,因此我们希望能够拥有一个跨平台的解决方案。

install4j uri-scheme

6
推荐指数
1
解决办法
184
查看次数

Install4J无法在Mac OS X上启动

使用JabRef,我们遇到一种奇怪的情况,一些用户在启动JabRef时会出现以下错误

错误信息

我们不会使用我们的应用程序发送JRE,而是依赖于Java安装在用户的计算机上.

我们在GitHub上有一个关于这个特殊错误的长期问题,尽管我们付出了很多努力,但似乎我们找不到问题的根源.特别是,因为没有一个开发者可以重现它.幸运的是,遇到此错误的用户之一非常友好地提供有关其计算机的所有信息:

$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

$ which java
/usr/bin/java

$ ls -l /usr/bin/java
lrwxr-xr-x 1 root wheel 74 Aug 14 12:09 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.0_161, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
1.8.0_121, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home

$ echo $JDK_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

我请这个特定的用户提供 …

install4j

6
推荐指数
0
解决办法
492
查看次数

下载破坏了 OSX 签名?

我刚刚开始签署我的 OSX 桌面应用程序,以便可以轻松地将其安装在 OSX 10.8 上。我遇到一个非常奇怪的问题,即签名工作正常,如果通过 DropBox 或 FTP 将 dmg 传输到 Mac,我可以安装,但如果将 dmg 上传到服务器,然后使用浏览器下载到 Mac,则签名失败(用户会看到与文件未签名相同的错误)。

背景:该应用程序是 Java,在 Install4J 中使用 Apple 的 .p12 进行签名。有趣的是,对于未签名或下载的 DMG,OSX 10.8 显示的错误非常奇怪,它表示安装程序已“损坏”,应该卸载。

有谁知道为什么用浏览器下载DMG时签名失败?

macos install4j osx-gatekeeper

5
推荐指数
1
解决办法
922
查看次数

将 javafx 与 install4j 捆绑在一起

我想将 javafx 2.1 与我的 install4j 安装程序捆绑在一起,我知道我可以根据特定的 .dll 和 .jar 文件手动实现这一点。但是我想以与捆绑 JRE 时相同的简单方式执行此操作,有没有办法做到这一点?如果没有,此功能是否会很快(或根本)可用?

javafx install4j

5
推荐指数
1
解决办法
1074
查看次数

install4j生成的可执行文件无法启动

我正在评估install4j,因为我想为我们的Windows用户生成可执行文件.通常我们直接在Eclipse中运行我们的应用程序,或使用bash脚本.我们有一个大的jar包含整个框架以及我们的应用程序和一些依赖jar.在部署时,我们使用一个shellscript设置类路径,并使用其他shellcripts启动各个应用程序.

此过程适用于Linux,Mac和Windows.

现在我尝试安装install4j的演示版本,并且一直在努力创建安装程序.

现在的结果是我构建了一个运行的安装程序,并将生成的EXE和所有其他文件安装在它下面的目录结构中.

但是,启动生成的可执行文件并不能很好地工作.将显示演示对话框,然后一段时间后应用程序退出而不显示任何错误消息.

我的猜测当然是它崩溃了,可能是因为类路径不正确或类似的东西.

问题是,我一直在玩install4j中的选项几个小时没有任何行为改变,我现在在黑暗中.添加整个LIB目录,"扫描目录",单独添加罐子等.

有什么办法可以从生成的可执行文件中获取一些调试信息吗?或者任何信息都会出现问题?

java eclipse windows classpath install4j

5
推荐指数
1
解决办法
1443
查看次数

无法使用 Install4j 更新 JAR 属性文件

我创建了一个新的“配置表单”屏幕,其中包含多个文本输入。我的目标是使用这些输入变量并将它们合并到一个属性文件中。

我使用的是 6.1.6 版 - 因此我为此创建了“修改 ZIP 文件”操作并将其放在安装程序的安装文件下。在操作的“修改操作”属性中,我创建了新的“将属性写入文件”操作,并在其中的“属性定义源”下选择了安装程序变量选项。然后让我绑定我之前定义的变量,这是有道理的。

我的问题是运行安装程序后,属性文件不会得到更新。打开 installation.log 时,我收到下一条消息:

[ERROR] com.install4j.runtime.beans.actions.properties.WritePropertiesFileAction [ID 1540]: Properties source variable db.database is not an instance of java.util.Map
Run Code Online (Sandbox Code Playgroud)
  1. 如何将变量定义为 Map 类型?
  2. 我不确定“修改 ZIP 文件”操作的确切位置 - 将它保存在“安装文件”部分下是可以的,还是应该将它放在我创建的新“配置表单”下?

更新

我将变量名设置为:“${installer:db.database}”,它应该将它放在 Map 中,现在我仍然收到错误消息:

[ERROR] com.install4j.runtime.beans.actions.properties.WritePropertiesFileAction [ID 1540]: Properties source variable postgres has not been set
Run Code Online (Sandbox Code Playgroud)

install4j

5
推荐指数
1
解决办法
192
查看次数