Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netbeans部署JavaFX应用程序管理员权限_Java_Netbeans_Javafx_Admin Rights - Fatal编程技术网

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

Netbeans部署JavaFX应用程序管理员权限,java,netbeans,javafx,admin-rights,Java,Netbeans,Javafx,Admin Rights,如何为Windows部署JavaFX应用程序,使包含jar的exe以管理员权限启动?我用我以前的部署方法实现了这一点,但是Netbeans方法似乎更简单、更高效,所以我真的很想使用它。这有助于消除我通常需要做的许多额外步骤 我确信解决方案就在我眼皮底下,但我就是想不出来 致以最良好的祝愿 阿伦提交赏金后,我可能会给你一个答案: 如果您知道如何在JavaFX bundler中使用自定义INNO脚本,则可以使用自定义INNO脚本并向注册表添加一个条目,以强制应用程序运行: [Registry] Ro

如何为Windows部署JavaFX应用程序,使包含jar的exe以管理员权限启动?我用我以前的部署方法实现了这一点,但是Netbeans方法似乎更简单、更高效,所以我真的很想使用它。这有助于消除我通常需要做的许多额外步骤

我确信解决方案就在我眼皮底下,但我就是想不出来

致以最良好的祝愿


阿伦

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

[Registry]
Root: HKCU; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\Appcompatflags\layers"; ValueType: string; ValueName: "{app}\File Name.exe"; ValueData: "RUNASADMIN";
这并不理想(无论如何,对我来说),但最重要的是它是有效的


如果您需要更多说明,请让我知道,我可以指导您完成。

添加应用程序清单,以指示应提升可执行文件。看见将静态应用程序清单(非嵌入式)作为资源添加到您的项目中。

我发现的解决方案对我来说非常有效,我是这样做的:

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,如so->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 creator重新打包?2个月,只有16个视图?@这只是一个简单的问题,当你运行.exe文件时,你是想通过双击它以管理员身份运行它,还是想通过点击.exe文件->以管理员身份运行它?两者都可以。我知道(或者至少认为)运行.jar时需要进行代码签名……在NetBeans中如何做到这一点。这是一个Java应用程序,不是Windows应用程序。OP说它是一个包含.jar的.exe。Java应用程序不包含在.exe中——它们包含在.jar文件中。此外,Java没有系统级“管理权限”的概念。在NetBeans中,OP用来生成.exe的任何进程都应该有一个创建资源文件的进程。如果我站在OP的立场上,我会使用Maven并将其绑定到Janel launcher(.exe)中,作为Maven构建过程的一部分,将Janel的存根复制到MyApplication.exe,并从
res/
目录复制MyApplication.exe.manifest。嘿,感谢您的回复!我找到了一个解决方案,其中包括您提到的清单,我将发布该解决方案来回答我自己的问题。谢谢威尔!然而,我找到了一个有效的解决方案。很抱歉迟了答复。我会把它贴在答案里。