在Mac OS X上,如果我的应用程序尚未运行,则双击文档会打开我的文档
通过双击文档启动绘图应用程序时,Finder会显示一个对话框,其中显示:
文件" test.jdwg"不能打开。应用" jDraft"无法打开" jDraft文档"格式。
此消息对话框出现在我的应用程序有时间放置其启动画面之前,但应用程序在后台启动(我看到启动画面),当我再次双击文档时,我的应用程序正确打开它。
作为背景,这个应用程序一直在工作(在这方面)多年。现在,当我尝试使用JWrapper打包我的应用程序时,会出现此问题。
以下是我的申请Info.plist
。
我怀疑这可能与JWrapper推出或分支JVM运行应用程序的方式有关...很难说,因为JWrapper是封闭源代码,因此远远超出了调试程序。
有没有人设法让文件关联在Mac OS X上与JWrapper一起使用?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>jDraft</string>
<key>CFBundleIdentifier</key>
<string>jwrapper.osx.jDraft</string>
<key>CFBundleVersion</key>
<string>43568712</string>
<key>CFBundleAllowMixedLocalizations</key>
<string>true</string>
<key>CFBundleExecutable</key>
<string>osxwrapper</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>LSUIElement</key>
<true/>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleIconFile</key>
<string>AppLogo.icns</string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>jDraft Drawing 2</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeIconFile</key>
<string>jDraft-doc-jdwg.icns</string>
<key>CFBundleTypeExtensions</key>
<array>
<string>jdwg</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>jdwg</string>
</array>
</dict>
</array>
</dict>
</plist>
答案 0 :(得分:1)
我想我可以确认这是一个JWrapper问题,而且目前还不能令人满意地解决。
我将JWrapper生成的包中的所有内容复制到我原来的应用程序包中,但没有这个问题(运气好的是没有冲突的文件名!)。
我的应用程序仍然运行良好。
然后我在'Info.plist'
中更改了这个属性<key>CFBundleExecutable</key>
<string>osxwrapper</string>
到
osxwrapper
问题又回来了,这意味着我在应用程序启动时会出现“无法打开”对话框。
所以我的结论是,这不是Mac OS / Finder正在执行此操作并建立对话框但是JWrapper osxlauncher
放置对话框并且无法将文档传递给我的Java代码或吞下'开放文件事件'。
我还尝试了.app/Contents/MacOS
可执行文件,因为JWrapper放入osxwrapper
文件夹 - 结果相同。
也许有办法告诉strtotime()
我的应用可以打开这些文档,但我找不到任何文档。或许这是一个不受支持的功能,这将是一个非常好的产品的严重遗漏。
无论哪种方式,从JWrapper人那里得到一个明确的答案会很好,这样我就可以不再浪费时间了。