2014-09-23 3 views
7

내 jar를 포함하는 exe가 관리자 권한으로 시작되도록 Windows 용 JavaFX 응용 프로그램을 배포하려면 어떻게해야합니까? 나는 기존의 배치 방법으로이 작업을 수행했지만 Netbeans 방식은 훨씬 쉽고 효율적으로 보이므로 정말 사용하고 싶습니다. 그것은 일반적으로해야 할 추가 단계를 많이 제거하는 데 도움이됩니다 ...Netbeans JavaFX 응용 프로그램 관리자 권한 배포

나는 해결책이 내 코 바로 아래에 있다고 확신하지만, 나는 그것을 알아낼 수없는 것 같습니다!

안부,

알렌

+0

진심 INNO 설정 창조자로 다시 압축? 2 개월 만 16 조회? – Will

+0

@. 빠른 질문 .exe 파일을 실행하면 관리자 권한으로 실행하고 싶습니까? 아니면 .exe 파일을 클릭하여 jar 파일을 exeute하고 싶습니다 -> 관리자 권한으로 실행 하시겠습니까? –

+0

두 가지 모두 가능합니다. 나는 당신이 .jar 파일을 실행하기 위해 코드 서명을해야한다는 것을 알고있다. (또는 적어도 생각한다.) ... – Will

답변

0

내가 나를 위해 아주 잘 작동을 발견 해결책은, 여기에 내가 그것을 할 방법은 다음과 같습니다

1) 자바 FX 넷빈즈 프로젝트의 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에서 매니페스트를 주입 한 후 Netbeans의 기본 배포 기능으로 만든 정확한 구조를 다시 패키지하는 INNO 설치 프로그램을 사용하여 사용자 지정 설치 프로그램을 만듭니다 (이제 새 설정에 새롭게 상승 된 .exe가 포함됩니다).).

기본 아이디어 : 넷빈즈와

배포 -> 로컬 설치 -> 상승 매니페스트 주입 ->

1

현상금을 제출하면 내가 당신을 위해 대답을 할 수 있습니다 : 을 당신은 자바 FX 들러와 함께 사용자 지정 INNO 스크립트를 사용하는 방법을 알고 있다면, 당신은 사용자 정의 INNO을 사용할 수 있습니다 이것은 (어쨌든, 나에게) 좋지 않은

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

하지만, 가장 중요한 것은 그것이 작동한다는 것입니다 : 스크립트와 응용 프로그램을 강제로 레지스트리에 항목을 추가는 상승 실행합니다.

자세한 설명이 필요하면 알려주세요. 안내해 드리겠습니다.

+0

Thanks Will! 그러나 나는 그 해결책을 발견했다. 늦은 답변 죄송합니다. 내가 대답에 올릴거야. – Alen

0

응용 프로그램 매니페스트를 추가하여 실행 파일을 상승시켜야 함을 나타냅니다. this MSDN blog entry을 참조하십시오. 정적 응용 프로그램 매니페스트 (포함되지 않음)를 리소스로 프로젝트에 추가합니다.

+0

NetBeans에서 얼마나 정확하게이 작업을 수행합니까? 이것은 Java 응용 프로그램이며 Windows 응용 프로그램은 아닙니다. – Will

+0

OP는 .jar를 포함하고있는 .exe라고 OP에서 말했습니다. Java 응용 프로그램은 .exe 파일에 포함되어 있지 않으며 .jar 파일에 들어 있습니다. 또한 Java에는 시스템 수준의 "관리자 권한"에 대한 개념이 없습니다. NetBeans에서 OP가 .exe를 만드는 데 사용한 프로세스가 리소스 파일을 만드는 프로세스를 가져야합니다. 내가 OP의 신발에 있었으면 Maven을 사용하여 Janel launcher (.exe)에 연결하고 Maven 빌드 프로세스의 일부로 Janel의 스텁을 MyApplication.exe에 복사하고 MyApplication.exe.manifest를 ' res /'디렉토리에 있습니다. – user314104

+0

답장을 보내 주셔서 감사합니다! 나는 당신이 말하는이 명단을 포함하는 해결책을 찾았고, 나는 내 자신의 질문에 답하기 위해 해결책을 게시 할 것이다. – Alen

관련 문제