Netbeans部署JavaFX应用程序管理员权限

时间:2014-09-23 11:50:38

标签: java netbeans javafx admin-rights

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

我确信解决方案正好在我的鼻子底下,但我似乎无法弄明白!

致以最诚挚的问候,

阿伦

3 个答案:

答案 0 :(得分:1)

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

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

这对我来说并不理想,但最重要的是它可以工作。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我找到的解决方案对我来说非常有效,这是我的工作方式:

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 \ elevation”。

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

基本理念:

使用Netbeans进行部署 - >本地安装 - >注入高程清单 - >使用INNO Setup创建者重新包装