문제

Java 스텁을 사용하지 않는 Java 응용 프로그램에 대해 OSX App-Bundle을 사용하지만 쉘 스크립트 (info.plist를 통해 등록 된). info.plist : 에 내 파일 확장자도 등록했습니다.

…
<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>My File Type Name</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>ext1</string>
            <string>ext2</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleTypeMIMETypes</key>
        <array>
            <string>application/ext1</string>
            <string>application/ext2</string>
        </array>
    </dict>
</array>
…
.

LaunchService가 내 파일을 인식하고 프로그램에 대한 연관성을 인식하는 데 필요한 것입니다.

Apple Devel Docs를 이해하는 한 Java의 파일 열기 핸들러를 Java에서 끌어서 오픈하여 파일을 열어 파일을 끌어서 앱 아이콘으로 끌어서 오픈 할 필요가 있습니다 (Java 6 Update 3) : 내 첫 번째 문제는 다음과 같습니다.이 핸들러는 결코 히트를받지 않습니다 - 디버그 메시지가없고 파일이 열리지 않습니다.

두 번째 문제가 관련 될 수 있습니다 : 연관된 파일을 두 번 클릭하면 실행 중이 아닌 경우 앱이 열립니다. 앱을 시작하기 위해 사용자 지정 쉘 스크립트를 사용하고 있기 때문에 몇 가지 종류의 매개 변수를 추가해야합니다. 먼저 내 startscript입니다.

#!/bin/bash
BASEDIR=$(dirname "$0")
cd "$BASEDIR/../Resources/Java/"
java -Xdock:icon="../ico.icns" -Xmx256m -jar "core/myjar.jar"
.

테스트 용 목적으로 내 인수 목록에 "$ 1"을 추가했습니다. $ 1은 시스템의 PSN입니다 ... 파일 열기의 이벤트를 PSN에 연결하는 방법은 어떻게 작동합니까? 쉘 스크립트).

도움이 되었습니까?

해결책

You can't use a shell script for this, AFAIK. Opened files are sent using AppleEvents, and bash does not have a way to receive those.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top