问题标签 [launch4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何将 lwjgl dll 与 launch4j 链接
我正在尝试使用 launch4j 将我的 jar 包装为 exe。但是我正在使用 lwjgl 库并且无法链接本机 dll。我的目录结构如下:
我有一个顶级目录,其中包含以下路径:top/lib/lwjgl/native/win32,其中包含我的 lwjgl dll。
还有一个 dist 目录包含我的 jar top/dist/myapp.jar
我可以使用以下命令从 dist 目录中的命令行运行我的程序:
java -ea -Djava.library.path=../lib/lwjgl/native/win32 -jar app.jar
它工作得很好。现在我使用命令行选项 -ea -Djava.library.path=../lib/lwjgl/native/win32 将我的 launch4j xml 文件定义为驻留在 dist 目录中
但是,当我尝试运行 exe 文件时,我得到一个不满意的链接错误。(意味着它找不到我的 lwjgl dll)。
我尝试过以多种不同的方式定义它。我将 changedir 定义为 ../ 并使用 -ea -Djava.library.path=lib/lwjgl/native/win32 以及尝试将我的 exe 移动到顶级目录并使用 /dist/app.jar 和 lib 路径似乎没有任何工作。
以前有没有人遇到过类似的问题?如何让 launch4j 识别我的 dll 路径?
谢谢。
windows-vista - 为什么我会收到来自程序兼容性助手的消息?
我自己的程序的设置在完成“程序兼容性助手”的一条消息后产生,该程序没有正确安装,但一切都正确。
卸载程序也有同样的问题。在 Vista 下会出现这些问题。我使用launch4j。
为什么会出现这个消息?如何消除我的客户看不到的消息?
java - lauch4j 你好世界程序
我创建了一个“hello world”java 程序并使用 lauch4j 将可执行 jar 转换为 .exe 文件。当我尝试在 cmd 中运行它时,但没有打印出来。我也尝试在 launch4j 中运行它。日志显示:正在执行:C:\Documents and Settings\cnbq84\Desktop\helloworld.exe。但仍然没有显示“hello world”。
如何显示“Hello World”消息?
谢谢
这是我的配置文件:
java - 在 Windows XP 上为我的 Lauch4J/NSIS 安装程序进行代码签名?
签署我的代码的程序是什么,以便当用户单击安装程序时它不会提示未知供应商。
我的设置是,
应用程序是基于java的。我用launch4j 包装jar 安装程序是基于nsis 的。
我的构建平台是xp。
安装完成后的另一件事是,我弹出一个提示,从 vista 不是 nsis 安装不成功,我该如何摆脱它?
java - 使用 launc4j java 创建 exe
我已经通过 luunch4j 和 build.xml ant 文件在 Java 中创建了一个 .exe 文件,但是当我单击 .exe 时,我收到“找不到主类程序将退出”的消息。如果我单击 .jar 文件,它也会给我“加载主类清单属性失败”消息。问题是什么?
java - 应用程序为什么/如何保留由另一个进程创建的互斥引用?
我有这个有点不寻常的流程结构:
- Launch4J 启动我的 Java 应用程序。它创建一个互斥体来为 Java 应用程序提供单实例功能。
- Java 应用程序启动一个可以有多个实例的 VB6 应用程序。
- 当 Java 应用程序终止时,VB6 应用程序仍在运行。(期望的行为)
问题是:Launch4J 创建的互斥锁只有在 VB6 应用程序终止后才会释放。因此,无法再次启动 Java 应用程序。
为什么会发生这种情况?我没有明确地打开互斥锁......
我首先怀疑这是因为 Java 使用CreateProcess
with bInheritHandles == true
,但是当我开始时问题并没有出现notepad.exe
。
编辑:我仍然有这个问题。任何指针表示赞赏!
java - Launch4j 的 -server 选项?
我一直在浏览 launch4j 网站,似乎无法弄清楚如何设置-server
程序选项,有一个旧论坛帖子表明它可能是未来的选项,但没有更多详细信息可用。
是否可以使用 Launch4j 在服务器模式下运行 JVM?
java - 将 Java 应用程序固定到 Windows 7 任务栏
我在 Windows 7 下使用 Launch4j 作为我的 Java 应用程序的包装器,据我了解,它本质上是派生出一个实例javaw.exe
,进而解释 Java 代码。结果,当尝试将我的应用程序固定到任务栏时,Windows 改为固定javaw.exe
. 如果没有所需的命令行,我的应用程序将无法运行。
如您所见,Windows 也没有意识到 Java 是宿主应用程序:应用程序本身被描述为“Java(TM) Platform SE 二进制文件”。
我尝试更改注册表项HKEY_CLASSES_ROOT\Applications\javaw.exe
以添加值IsHostApp
。这通过完全禁用我的应用程序的固定来改变行为;显然不是我想要的。
在阅读了 Windows 如何解释单个应用程序的实例(以及在这个问题中讨论的一种现象)之后,我开始对将应用程序用户模型 ID (AppUserModelID) 嵌入到我的 Java 应用程序中感兴趣。
我相信我可以通过将唯一的传递AppUserModelID
给 Windows 来解决这个问题。有一种shell32
方法,SetCurrentProcessExplicitAppUserModelID
. 按照 Gregory Pakosz 的建议,我实现了它,试图让我的应用程序被识别为一个单独的实例javaw.exe
:
这似乎没有效果,但函数返回没有错误。诊断为什么对我来说是个谜。有什么建议么?
工作实施
最终的实现是对我关于如何通过using JNA的后续问题的回答。AppID
我已将赏金授予 Gregory Pakosz 对 JNI 的出色回答,这让我走上了正轨。
作为参考,我相信使用这种技术打开了在 Java 应用程序中使用本文讨论的任何 API 的可能性。
java - Java 打包工具 - jsmooth、launch4j、onejar 的替代品
我已经使用这三个开源工具来打包我的 java 应用程序,但它们现在看起来都像废弃的软件。这三个都是非常好的软件。现在有哪些选择?(或者使用 Java 进行桌面应用程序开发不再是应用程序开发人员构建和维护这些工具的“热门”市场?)。
1) exe 包装器:jsmooth - 2.5 年内无新开发 - 不支持 64 位。launch4j - 一年多没有新开发,支持64位,但是不能签名launch4j创建的exe,所以我更喜欢jsmooth,但不支持64位。
2)onejar:可以,但是2.5年多没有新的开发或网站更新。因此,如果它突然与新的 Java 版本中断,只想切换到受支持的东西/有一个备份计划。
谢谢埃德加
windows-7 - launch4j exe本身没什么好说的,有人有建议吗?
在Linux上运行,我使用launch4j打包一个exe。
我将 exe 复制到我的 Windows 7 VM 中,然后运行它。
什么也没有发生。
我用 --l4j-debug 运行它,但仍然没有任何反应(至少,如果有日志文件,我找不到它)。
我在这里缺少一些诊断技术吗?