我正在使用jarbundler 2.2.0,正如其他答案所建议的那样,因为应用程序应该由Apple在JRE 1.6上运行.
捆绑似乎是正确的,显示适当的图标,但点击它不会做任何事情.如果我进入它的内容并尝试双击指定的主文件的jar工作正常.
有没有办法看到发生了什么?我可以看到某种错误或日志?
编辑 请求的Info.plist.由于代码是私有的,我用Application替换了一些东西:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>Application</string>
<key>CFBundleShortVersionString</key>
<string>2.2.0</string>
<key>CFBundleGetInfoString</key>
<string>Application version</string>
<key>CFBundleAllowMixedLocalizations</key>
<string>false</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleExecutable</key>
<string>JavaApplicationStub</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>beta</string>
<key>CFBundleIconFile</key>
<string>SynamicD.icns</string>
<key>CFBundleIdentifier</key>
<string>net.sourceforge.javydreamercsw</string>
<key>Java</key>
<dict>
<key>MainClass</key>
<string>net.sourceforge.javydreamercsw.Main</string>
<key>JVMVersion</key>
<string>1.6.*</string>
<key>ClassPath</key>
<array>
<string>$JAVAROOT/Application.jar</string>
<string>$JAVAROOT/lib\lib1.jar</string>
<string>$JAVAROOT/lib\lib2.jar</string>
</array>
<key>Properties</key>
<dict>
<key>apple.awt.textantialiasing</key>
<string>true</string>
<key>apple.awt.brushMetal</key>
<string>true</string>
<key>apple.laf.useScreenMenuBar</key>
<string>true</string>
<key>apple.awt.showGrowBox</key>
<string>true</string>
</dict>
</dict>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
PkgInfo的内容:
APPL????
Run Code Online (Sandbox Code Playgroud)
在Application.app/Contents/MacOS上,我有Mac Machine的JavaApplicationStub.
产生的文件结构:
Application.app
|
---Contents
|
---Info.plist
---PkgInfo
---MacOS
|
| ---JavaApplicationStub
---Resources
|
---Java
|
----lib
|
---lib1.jar
|
---lib2.jar
|
---Application.jar
|
---Application.icns
Run Code Online (Sandbox Code Playgroud)
请求输出到命令:
~ $ java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
~ $ sw_vers -productVersion
10.8.2
~ $ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
1.7.0_17, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
1.7.0_15, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_15.jdk/Contents/Home
1.6.0_43-b01-447, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_43-b01-447, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
~ $ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
~ $ echo $JAVA_HOME
~ $ echo $JAVA_ARCH
~ $ /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
~ $ ls /Library/Java/JavaVirtualMachines
jdk1.7.0_15.jdk jdk1.7.0_17.jdk
~ $ /System/Library/Frameworks/JavaVM.framework/Commands/java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
~ $
Run Code Online (Sandbox Code Playgroud)
这些反斜杠肯定是错误的,因为 Mac OS 是 Unix。应该:
<array>
<string>$JAVAROOT/Application.jar</string>
<string>$JAVAROOT/lib/lib1.jar</string>
<string>$JAVAROOT/lib/lib2.jar</string>
</array>
Run Code Online (Sandbox Code Playgroud)
既然你说你是在 Windows 上执行此操作的,那么我要检查的另一件事是文件权限。这些文件特别是:
最后,不推荐使用 1.6* 的 JVM 版本。尝试使用 1.5+ 或 1.6+,因为它可能更兼容。
排除上述所有情况后,问题必定出在 JavaApplicationStub 上。请注意,来自 JarBundler 页面:
当 JarBundler ANT 任务在 Windows 或 Linux 下使用时,开发人员必须提供 JavaApplicationStub 的副本。它不能从源代码构建,而必须从 Mac OS X 系统获取。
Java 启动存根的一个已知问题
2006 年初,Apple 升级到 Quicktime (7.0.4) 导致旧版本的“JavaApplicationStub”无法启动。这些旧副本来自开发人员,他们首先将应用程序包创建为目录,然后通过替换包中的 JAR 文件而不是用更新的副本替换“JavaApplicationStub”来创建新应用程序。
| 归档时间: |
|
| 查看次数: |
4662 次 |
| 最近记录: |