Я управлял проектом с открытым исходным кодом, написанным на Java (1.6), и в последнее время многие пользователи OSX сообщают о проблемах с более новой OSX, не поддерживающей Java 6. У меня нет реального опыта работы с OSX и ее нюансами и идиосинкразии. Но я начал изучать обновление до Java 8 и прочитал, что мне нужно заменить jarbundler на appbundler, и я сделал это. Однако теперь мое приложение запускается, и на панели задач появляется значок, но окно не отображается. Я пытался заставить его показать диалоговое окно при запуске, и это прекрасно работает, просто мой главный JFrame никогда не показывает. Кроме того, главное меню, которое появляется в верхнем левом углу, вообще не мое, оно имеет несколько странных опций, которые точно не мои.
Вот задача bundleapp
<bundleapp
outputdirectory="${build.dir}"
name="DIYLC"
jvmrequired="1.8"
copyright="Branislav Stojkovic, a.k.a. bancika"
displayname="DIY Layout Creator"
identifier="org.diylc.App"
shortversion="${diylc.version}"
applicationCategory="public.app-category.graphics-design"
icon="diylc.icns"
mainclassname="${main.class}">
<classpath file="${jar.dir}\diylc.jar" />
<classpath file="${jar.dir}\lib\*.jar" />
<classpath file="${jar.dir}\library\*.jar" />
<option value="-splash:splash.png" />
<option value="-Xms512m" />
<option value="-Xmx2048m" />
<option value="-Dorg.diylc.scriptRun=true" />
<option value="-Dfile.encoding=UTF-8" />
<option value="-Dcom.apple.macos.use-file-dialog-packages=true"/>
<option value="-Dcom.apple.macos.useScreenMenuBar=true"/>
<option value="-Dapple.awt.application.name=DIY Layout Creator"/>
<option value="-Dcom.apple.smallTabs=true"/>
<option value="-Xdock:name=DIY Layout Creator"/>
<option value="-Xdock:icon=Contents/Resources/diylc.icns"/>
</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>diylc.icns</string>
<key>CFBundleIdentifier</key>
<string>org.diylc.App</string>
<key>CFBundleDisplayName</key>
<string>DIY Layout Creator</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>DIYLC</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.57.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>NSHumanReadableCopyright</key>
<string>Branislav Stojkovic, a.k.a. bancika</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.graphics-design</string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<true/>
<key>JVMVersion</key>
<string>1.8</string>
<key>JVMMainClassName</key>
<string>org.diylc.DIYLCStarter</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>-splash:splash.png</string>
<string>-Xms512m</string>
<string>-Xmx2048m</string>
<string>-Dorg.diylc.scriptRun=true</string>
<string>-Dfile.encoding=UTF-8</string>
<string>-Xdock:name=DIY Layout Creator</string>
<string>-Xdock:icon=Contents/Resources/diylc.icns</string>
</array>
<key>JVMDefaultOptions</key>
<dict>
</dict>
<key>JVMArguments</key>
<array>
</array>
</dict>
</plist>
в качестве ссылки, вот старый Info.plist, который работает с Java 6
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>DIYLC</string>
<key>CFBundleShortVersionString</key>
<string>3.57.0</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>CFBundleIconFile</key>
<string>diylc.icns</string>
<key>CFBundleIdentifier</key>
<string>org.diylc</string>
<key>NSHumanReadableCopyright</key>
<string>bancika (diy-fever.com)</string>
<key>Java</key>
<dict>
<key>MainClass</key>
<string>org.diylc.DIYLCStarter</string>
<key>JVMVersion</key>
<string>1.3+</string>
<key>ClassPath</key>
<array>
<string>$JAVAROOT/diylc.jar</string>
<string>$JAVAROOT/lib\app-framework.jar</string>
<string>$JAVAROOT/lib\balloontip-1.2.4.1.jar</string>
<string>$JAVAROOT/lib\commons-compiler-3.0.6.jar</string>
<string>$JAVAROOT/lib\diylc-core.jar</string>
<string>$JAVAROOT/lib\iText-2.1.7.jar</string>
<string>$JAVAROOT/lib\janino-3.0.6.jar</string>
<string>$JAVAROOT/lib\java-http-proxy.jar</string>
<string>$JAVAROOT/lib\jep-2.4.1.jar</string>
<string>$JAVAROOT/lib\jettison-1.0.1.jar</string>
<string>$JAVAROOT/lib\junit-4.7.jar</string>
<string>$JAVAROOT/lib\log4j-1.2.15.jar</string>
<string>$JAVAROOT/lib\poi-3.5-FINAL-20090928.jar</string>
<string>$JAVAROOT/lib\swing-framework.jar</string>
<string>$JAVAROOT/lib\xstream-1.4.3.jar</string>
<string>$JAVAROOT/library\main.jar</string>
</array>
<key>VMOptions</key>
<string>splash:splash.png -Xms512m -Xmx2048m -Dorg.diylc.scriptRun=true</string>
<key>WorkingDirectory</key>
<string>$APP_PACKAGE/Contents/Resources</string>
<key>SplashFile</key>
<string>$APP_PACKAGE/Contents/Resources/splash.png</string>
<key>Properties</key>
<dict>
<key>com.apple.mrj.application.apple.menu.about.name</key>
<string>DIYLC</string>
<key>apple.laf.useScreenMenuBar</key>
<string>true</string>
</dict>
</dict>
</dict>
</plist>
С точки зрения структуры файлов, каталог Java в старом DIYL C .app создается с Jar-файлами, расположенными в нескольких подкаталогах, но в новом DIYL C. приложение они все там без подкаталогов.
Любая информация будет высоко ценится.
Cheers
Обновление: я нашел машину с Mojave OSX и там она работает хорошо иногда, а иногда это та же проблема, что и на Сьерра. На Мохаве, когда он не работает нормально, я обнаружил, что окно выглядит свернутым в левом нижнем углу окна. Я могу вручную изменить его размер, и тогда все в порядке. На Сьерре нигде не могу его найти.