0

我正在更新我们的应用程序以使用 Java 1.7,所以在 OSX 上我已经更新到 InfiniteKind AppBundlerTask。(appbundle-1.0ea.jar)

当我运行任务时,它生成的 info.plist 根本没有类路径。(并且应用程序没有运行。)此外,我一直无法找到更新的 appbundlertask 的 Ant 任务文档。所以它在运行期间输出的唯一消息是:

[bundleapp] Creating app bundle: Metrix

Ant 任务如下所示:

<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>

生成的 info.plist 如下所示:

<?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>
4

1 回答 1

0

做更多的挖掘和测试我发现:

  1. 使用新的 Jar 启动器,您(显然)不需要 Plist 中的类路径。
  2. 新的启动器将 user.dir 属性设置为与 user.home 相同。这会导致我们的应用程序在启动时失败。
  3. 显然没有关于新的 jarbuildertask 的文档
于 2016-12-08T21:54:42.277 回答