2013-05-16 2 views
10

나는 OS X를 포함한 여러 플랫폼에 배포 된 Java 응용 프로그램에 대한 책임이 있습니다. 최신 버전의 응용 프로그램에서는 Apple에서 제공하는 JavaApplicationStub를 사용하는 하나의 OS X 용 번들과 번들로 제공되는 두 개의 번들 JDK 7 및 사내에서 생산 된 런처를 사용합니다 (Oracle JavaAppLauncher 수정).Mac OS X에서 응용 프로그램에 Java가 필요하다고 판단하는 방법은 무엇입니까?

후자 번들과 함께, Mac OS X은 응용 프로그램을 실행하려고하면 여전히 Java 6이 설치되어 있다고 주장합니다. 특히 메시지에는 다음과 같이 표시됩니다 :

"응용 프로그램을 열려면 Java SE 6 런타임이 필요합니다. 지금 설치 하시겠습니까?"

Java SE 6을 설치하지 않으면 JDK 7이 번들되어 있음에도 불구하고 응용 프로그램을 실행할 수 없습니다 (Java 6을 설치하면 번들로 제공되는 Java 7에서도 실행됩니다).

내가 알아 내려고 애 쓰고있는 것은 OS X에서 응용 프로그램이 Java를 필요로한다고 결정하는 것입니다. Info.plist 파일에서 'Java'사전의 이름을 바꾸고 자원 폴더 내의 자바 하위 폴더의 이름을 바꾸지 않고 이름을 바꾸려고했습니다. 누구든지 아이디어가 있습니까? 확실히 시스템 JDK를 설치하지 않고도 번들로 제공되는 JDK로 애플리케이션을 실행할 수 있습니까?

+0

[this] (http://stackoverflow.com/questions/14806709/application-is-using-java-6-from-apple-instead-of-java-7-from-oracle-on-mac- os-x) 어떤 식 으로든 도움이 될까요? – Gamb

+0

* "번들로 제공되는 JDK 7을 포함하는 또 다른 패키지"* DYM JRE 7? –

+0

Gamb, no. 우리는 Apple의 JavaAppLauncher를 사용하지 않습니다. 문제는 잘못된 JDK로 실행된다는 것이 아니라 Java 6이 설치되어야한다고 주장하는 것입니다. – davmac

답변

2

답변을 찾았습니다 ([email protected] 메일 링리스트의 Mike Swingler의 도움을 얻었습니다).

Info.plist 파일 에 'Java'사전이있는 것은 대화를 트리거하는 내용이인데, 앱 시작을 시도한 후에 사전 이름을 변경하면 충분하지 않습니다. 시스템은 어떻게 든 Java에 대한 요구 사항을 캐시하고 대화 상자를 다시 발행합니다. 이를 방지하려면 처음으로 응용 프로그램을 실행하기 전에 응용 프로그램의 새로운 복사본을 다운로드하고 변경해야합니다 (응용 프로그램의 이름을 바꾸면 이름을 바꿀 수 있고 원래 이름으로 다시 되돌릴 수 있습니다. 이름).

다행히도, 이것은 우리가해야 할 일은 'Java'사전의 이름을 변경하고 커스터마이징 된 시작 프로그램을 변경하여 새로운 사전 이름을 사용한다는 것입니다.