2016-12-07 5 views
0

Java 1.7을 사용하도록 애플리케이션을 업데이트하고 있습니다. 따라서 OSX에서 InfiniteKind AppBundlerTask로 업데이트했습니다. (appbundler-1.0ea.jar)AppBundlerTask info.plist에 클래스 경로를 만들지 않습니다.

작업을 실행할 때 생성되는 info.plist에는 클래스 경로가 전혀 없습니다. (그리고 애플 리케이션이 실행되지 않습니다.) 또한, 나는 업데이트 된 appbundlertask에 대한 개미 작업 설명서를 찾을 수 없습니다. 그래서 실행시는 출력 만 MSG는 다음과 같습니다

[bundleapp] Creating app bundle: Metrix 

개미 작업은 다음과 같습니다

결과의 Info.plist는 다음과 같습니다
<taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="${build-helpers-lib.dir}/appbundler-1.0ea.jar" /> 
<bundleapp outputdirectory="${build-finalJars.dir}" 
         jvmrequired="1.7" 
         name="Metrix" 
         displayName="Metrix" 
         identifier="Metrix" 
         shortversion="2017.1" 
         mainclassname="a.x" 
         copyright="(c)2017 EFI, Inc." > 
<classpath dir="${build-finalJars.dir}" > 
<include name="tomcat-websocket.jar" /> 
<include name="batik-parser-1.8.jar" /> 
<include name="flexlmmgmt.jar" /> 
... and a bunch more .jar files ... 
</classpath> 
<option value="-Xms512m"/> 
<option value="-Xmx4096m"/> 
<option value="-Dapple.laf.useScreenMenuBar=true"/> 
</bundleapp> 

:

<?xml version="1.0" ?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
<key>CFBundleDevelopmentRegion</key> 
<string>English</string> 
<key>CFBundleExecutable</key> 
<string>JavaAppLauncher</string> 
<key>CFBundleIconFile</key> 
<string>GenericApp.icns</string> 
<key>CFBundleIdentifier</key> 
<string>Metrix</string> 
<key>CFBundleDisplayName</key> 
<string>Metrix</string> 
<key>CFBundleInfoDictionaryVersion</key> 
<string>6.0</string> 
<key>CFBundleName</key> 
<string>Metrix</string> 
<key>CFBundlePackageType</key> 
<string>APPL</string> 
<key>CFBundleShortVersionString</key> 
<string>2017.1</string> 
<key>CFBundleVersion</key> 
<string>1.0</string> 
<key>CFBundleSignature</key> 
<string>????</string> 
<key>NSHumanReadableCopyright</key> 
<string>(c)2017 EFI, Inc.</string> 
<key>NSHighResolutionCapable</key> 
<true/> 
<key>NSSupportsAutomaticGraphicsSwitching</key> 
<true/> 
<key>JVMVersion</key> 
<string>1.7</string> 
<key>JVMMainClassName</key> 
<string>a.x</string> 
<key>CFBundleDocumentTypes</key> 
<array> 
</array> 
<key>LSArchitecturePriority</key> 
<array> 
</array> 
<key>LSEnvironment</key> 
<dict> 
<key>LC_CTYPE</key> 
<string>UTF-8</string> 
</dict> 
<key>JVMOptions</key> 
<array> 
<string>-Xms512m</string> 
<string>-Xmx4096m</string> 
<string>-Dapple.laf.useScreenMenuBar=true</string> 
</array> 
<key>JVMDefaultOptions</key> 
<dict> 
</dict> 
<key>JVMArguments</key> 
<array> 
</array> 
</dict> 
</plist> 

답변

0

이렇게 많은 더 많은 파기와 테스트를 통해 알게 된 것은 다음과 같습니다.

  1. 새로운 Jar 런처를 사용하면 Plist에 classpath가 필요하지 않습니다.
  2. 새로운 시작 프로그램은 user.dir 속성을 user.home과 동일하게 설정합니다. 이로 인해 시작시 앱이 실패합니다.
  3. 새로운 jarbuildertask에 대한 문서가 없습니다.