问题标签 [javapackager]

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.

0 投票
0 回答
104 浏览

java - 如何将自定义 Java 模块更新为 JRE 映像

我有一个 Java 桌面应用程序,它是一个带有 module-info.java 文件的有效模块。我还使用 javapackager 命令创建自定义 JRE 运行时映像,然后使用 Inno Setup 为我的应用程序创建 Windows 安装程序。由于我的应用程序作为模块安装在自定义 JRE 映像中,是否可以对其进行更新?我不想使用 javapackager 更新我的应用程序,只需将我的应用程序模块更新到现有的自定义 JRE 映像中。

我注意到使用 javac 命令和 module-patch 参数是可能的,但我不确定如何使用它。任何人都知道我可以使用哪些命令和参数来执行此操作?提前致谢。

0 投票
2 回答
379 浏览

java - 如何强制打包的 java 应用程序以管理员身份运行

我正在尝试使用 java 打包器工具打包一个 java 应用程序(我是这个工具的新手),应用程序本身必须在内部进行一些调用(使用 java 进程 api)

如果 java 应用程序以管理员权限启动,这将正常工作。例如,如果我运行我的 jar 应用程序sudo java -jar application.jar,那么所有子进程也都成为管理员。

出于分发目的,我无法控制用户将如何启动应用程序。因此尝试使用 java packager 工具-但我需要强制应用程序以管理员权限运行。(例如,如果用户没有 sudo,应用程序将停止)

我强烈希望避免的另一种解决方法是在我启动内部进程时要求用户输入他们的管理员/sudo 密码。

---编辑--- 我认为我需要在得到评论和答案后添加更多背景。尽管问题似乎与是否检测管理员有关..这不是我的问题。

format.app需要管理员才能工作。

我使用 javapackager 工具来分发 MyApp.app (for mac) MyApp.exe (for windows) 等...

  • 我希望 MyApp.app 只能由管理员用户执行。这意味着如果用户尝试启动 MyApp.app 没有管理员权限,他的操作系统会提示输入凭据,否则操作系统将不允许应用程序启动.

  • 我的解决方法是使用 sudo 但他们我需要提示用户输入密码.. 这对我来说是一个安全问题(提示不是本机)和 2/我这种方法较弱并且可能会在附加到密码时暴露密码过程

0 投票
1 回答
124 浏览

java - 独立的 javafx 应用程序无法在 ubuntu 中运行:GLIBCXX_3.4.21 的问题

  • 我使用 javafx 构建了一个小应用程序(非常基本的东西)
  • 使用 javac 编译:OK (oracle jdk 1.8.0_201-b09)
  • 装箱:好的:jar 与 java -jar 一起工作正常
  • 使用 javapackager 打包应用程序

    javapackager \ -deploy \ -daemon \ -srcfiles $JAR_FILE:./lib/$LIB_JAR.jar \ -outdir $DIST_FOLDER \ -outfile dist \ -native deb \ -appclass com.myapp.client.gui.Main \ -name "我的应用程序”\-标题“我的应用程序”\-v

  • 运行生成的 deb 安装程序(同一台机器)

  • 去 /opt/MyApp 下已安装的应用程序,当我运行它时,MyApp它只是抱怨GLIBCXX_3.4.21找不到

我已经尝试了各种适当的修复,但没有任何效果..

值得一提的是,这一切都是在从虚拟机运行的全新 ubuntu 桌面版本中完成的。(Ubuntu 14.04.1 amd64)

0 投票
1 回答
401 浏览

java - Java自包含包等待完成

我有一个应用程序,我需要它是一个独立的应用程序,可安装在可能没有 Java 的计算机上。我正在使用javapackager命令创建一个可以发送给用户的 EXE,其中包含所需的所有部分。简单来说,应用程序读取第一个参数引用的文件,对其进行转换,然后在源文件旁边写回结果。当直接将其作为 JAR 运行时,以及通过内置的 EXE 运行时,所有这些都有效。

问题是在触发可执行文件时,它会立即将执行返回到命令提示符,而不是等待进程完成。我不想轮询输出目录以检查文件是否存在,然后在何时停止查找时给出一些任意超时 - 我希望应用程序知道一旦控制台命令完成,处理就完成了。那时我可以根据我是否找到结果文件来做逻辑,如果没有找到或者其他任何逻辑是正确的,就会发出警报。

有没有办法告诉javapackager命令在返回控制权之前设置等待,直到 Java 死亡(好或坏)?除此之外,是否有一个代码片段/概念可以使应用程序推迟将控制权释放回终端,直到 JVM 死亡?

0 投票
1 回答
619 浏览

javafx - 是否可以在 ZuluFX for Mac 上使用 javapackager

我能够在 Windows 上将 ZuluFX 8 与 javapackager 一起使用。但是,在 Mac 上我收到此错误:

由于配置问题而跳过了 Bundler Mac 应用程序映像:无法确定指定的运行时目录中存在哪个 JRE/JDK。
修复建议:将运行时目录指向 JDK/JRE 根目录、该根目录的 Contents/Home 目录或 JDK 的 Contents/Home/jre 目录之一。

将包移动到其中非常容易,Contents/Home但我怀疑这是否可行,因为似乎没有 JRE 与 Mac 版本的 ZuluFX 8 捆绑在一起。这是可以解决的问题吗?

0 投票
0 回答
55 浏览

java - 使用 javapackager 时如何合并未命名的模块

试图将未命名的模块 jar 合并到另一个项目中。当我们运行 javapackager 命令时,我们得到以下错误:

未命名的模块 jar 是 cfintami.jar。这个 jar 在默认包中包含一个类。它还包含 module-info.java。

下面是我的项目结构。未命名的 Java 项目是 Dllcommunication。主项目是 DLL3MDebug。在这两个项目上使用 Eclipse Photon 和 Java 10。

任何帮助表示赞赏。

在此处输入图像描述

0 投票
0 回答
116 浏览

java - 使用 Java 9 和更高版本替代默认包

I have an application which calls a third party dll. The dll is written so that the calls to it include the fully qualified name of the class doing the calling. This module has worked for a number of years using versions of Java earlier than Java 9. But because of Oracles new restrictions on putting classes in the default package, it no longer works with more recent versions of Java.

How do I get around this problem?

0 投票
0 回答
79 浏览

java - 如何创建自包含的 Java 应用程序?

我要做的是构建一个在 Windows 和 macOS 上都兼容的 java swing 应用程序。导出可执行 jar 文件并在另一台装有 JRE 的计算机上运行它可以完美运行,但问题在于没有它的计算机。

我想拥有它,这样我的应用程序就可以在设备上安装必要的 JRE,而无需将用户重定向到该站点进行下载并让他们单独安装它。我了解到这可以通过自包含应用程序来完成,其中包中内置了必要的 JRE,但官方文档(https://docs.oracle.com/javase/10/deploy/self-contained-application -packaging.htm#JSDPG583 太模糊了。

据我所知,创建自包含应用程序的几种方法是修改 Ant Task fx: deployjavapackager -deploy命令。我已经尝试过这两种方法,但每种方法都有问题。对于 Ant,尚不清楚包含该属性的文件在哪里(或如何创建它),对于 javapackager,此页面在这里:( https://docs.oracle.com/javase/8 /docs/technotes/guides/deploy/packager.html)说添加一个路径到javapackager.jar位于我的 JDK 安装的 bin 目录中;我已经将%JAVA_HOME%\bin添加到路径中,但这无济于事,因为javapackager.jar根本不存在(jre-12 是我的安装,如果有帮助的话)。

我是这种事情的新手,所以尽可能多的细节将不胜感激。

谢谢

0 投票
0 回答
57 浏览

java - 从 Applications/app.app 运行 jar 的 MacOS 在加载 .fxml 期间以不正确的路径错误结束

我创建了一个想要转换为 MacOS .app 的 java 应用程序。我设法针对我的 jar 文件运行 java 打包程序,该文件为我创建了 .pkg 文件。安装后应用程序正在启动(预加载器),但.fxml由于“!”而以文件加载问题结束 出于某种原因添加到路径的字符:

当 .jar 文件位于其他位置时,它可以正常工作/Applications/app.app/。我已经尝试从Application/app.app/Contents/Java/and手动启动它Application/app.app/Contents/MacOS/,但结果是相同的(即使使用 sudo)。我厌倦了更改权限(chmod)和系统偏好(system preferences > privacy)但仍然没有运气。

值得一提的是,我以类似的方式为预加载器加载背景图片并且它正在工作。

任何建议将不胜感激。

编辑:根据要求添加主类

提前致谢, 皮奥特

0 投票
2 回答
7219 浏览

windows - 如何使用 javapackager 生成模块化 Java 应用程序的可执行文件?

环境: Win10、Oracle JDK 9、Eclipse、jlink、javapackager

上下文:我正在尝试生成一个可执行文件,其中包含使用javapackager 制作的 java 自定义运行时映像,并jlink阅读javapackager 文档。不是可安装的。

Jlink 创建了一个 zip 文件,其中包含我所有的 java 类文件和封装的资源(这意味着我无法从 System Explorer 访问它们)+ 自定义 jre。它带有一个 .bat 启动器来运行该应用程序。一切正常。

Walkthrow: 1st 我发现OpenJDK14 提供jpackage了一个OpenJDK 实用程序,用于使 java 模块化应用程序可执行,该程序仍在开发中。我没有找到任何方法来处理它。后来我调查了 Inno Setup,但它不能满足我的需求(因为我不需要安装程序)后来我发现自 Oracle JDK 8 以来,有一个工具可以为每个平台(max、linux、windows ..)生成可运行文件.javapackager

我无法使 javapackager 工作。这是我在 Windows cmd 上执行的命令的各种尝试之一。

使用前面的命令,我得到错误:

所以,我意识到我将 -deploy 命令及其选项与 -createjar 命令及其选项混合在一起。

有人可以解释如何使用 javapackager 生成 .exe 吗?

编辑 1

尝试过 jpackage(使用 jdk 14 和所需的Wix 安装程序作为依赖项):

输出:myApp.1.0.exe。它打开一个 cmd 和一个“安装程序”,但不执行 myApp,因为没有包含自定义的 java 运行时环境。