【问题标题】:Netbeans Deploy JavaFX App Admin RightsNetbeans 部署 JavaFX 应用程序管理员权限
【发布时间】:2014-11-17 14:49:06
【问题描述】:

如何为 Windows 部署 JavaFX 应用程序,以便包含我的 jar 的 exe 以管理员权限启动?我使用旧的部署方法进行了这项工作,但 Netbeans 的方式似乎更容易、更高效,所以我真的很想使用它。它有助于消除我通常需要做的许多额外步骤...

我确定解决方案就在我的眼皮底下,但我似乎无法弄清楚!

最好的问候,

艾伦

【问题讨论】:

  • 认真的吗? 2 个月,只有 16 次观看?
  • @Will 只是一个简单的问题,当您运行 .exe 文件时,您是想通过双击它以管理员身份运行它,还是想通过单击 .exe 文件来执行里面的 jar -> 以管理员身份运行?
  • 两者,最好。我知道(或至少认为)您需要进行代码签名才能运行提升的 .jar...

标签: java netbeans javafx admin-rights


【解决方案1】:

提交赏金后,我可能会为您提供答案: 如果您知道如何将自定义 INNO 脚本与 JavaFX 捆绑程序一起使用,则可以使用自定义 INNO 脚本并向注册表添加一个条目,该条目将强制应用程序运行提升:

[Registry]
Root: HKCU; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\Appcompatflags\layers"; ValueType: string; ValueName: "{app}\File Name.exe"; ValueData: "RUNASADMIN";

这并不理想(无论如何对我来说),但最重要的是它可以工作。

如果您需要更多说明,请告诉我,我可以指导您完成。

【讨论】:

  • 谢谢威尔!但是我找到了一个可行的解决方案。这么晚才回复很抱歉。我会在答案中发布。
【解决方案2】:

添加应用程序清单以指示可执行文件应该被提升。见this MSDN blog entry。将静态应用程序清单(未嵌入)作为资源添加到您的项目中。

【讨论】:

  • 在 NetBeans 中究竟是如何做到这一点的。这是一个 Java 应用程序,而不是 Windows 应用程序。
  • OP 说它是一个包含你的 .jar 的 .exe。 Java 应用程序不包含在 .exe 中——它们包含在 .jar 文件中。此外,Java 没有系统级“管理员权限”的概念。在 NetBeans 中,OP 用来制作 .exe 的任何进程都应该有一个用于创建资源文件的进程。如果我站在 OP 的立场上,我会使用 Maven 并将其绑定到 Janel 启动器 (.exe),作为 Maven 构建过程的一部分,将 Janel 的存根复制到 MyApplication.exe 并从 @ 复制 MyApplication.exe.manifest 987654322@目录。
  • 您好,感谢您的回复!我找到了一个解决方案,其中包括你所说的这个清单,我会发布解决方案来回答我自己的问题。
【解决方案3】:

我找到的解决方案非常适合我,我是这样做的:

1) 在 JavaFX Netbeans 项目的 jfx-impl.xml 文件中定义自定义 JDK 位置。 提示:搜索“plat.setBasedir”并将参数更改为:plat.setBasedir("path\to\jdk\and\not\jre")。 这可确保 JDK 嵌入到您的安装程序中。

2) 为 JavaFX 项目设置本机部署(您认为适合您的项目的方式)。

3) 将您的应用程序部署为原生 exe。

4) 在本地某处安装您的应用程序。

5) 安装 Windows SDK 7.1。 您需要清单工具(mt.exe),您可以在程序文件/windows sdk/...中的某处找到它。

6) 为管理员权限创建清单(示例可在 stackoverflow 或 google 上找到)。 提示:当你创建文件名时,它应该看起来像这样-> "Program Name.exe.manifest"。

7) 使用 mt.exe 将清单注入应用程序的 .exe。 提示:以管理员权限启动 CMD 并像这样运行 mt.exe -> mt.exe -manifest "path\to\manifest\Program Name.exe.manifest" -outputresource:"\path\to\exe\that\needs\海拔”。

8) 在步骤 7 中注入清单后,使用 INNO Setup 创建您自己的设置,该设置重新打包由 Netbeans 的本机部署功能创建的确切结构(这现在将在新设置中包含新提升的 .exe) .

基本思路:

使用 Netbeans 部署 -> 本地安装 -> 注入海拔清单 -> 使用 INNO Setup creator 重新打包

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 2021-07-27
    • 2013-09-27
    • 2012-08-27
    相关资源
    最近更新 更多