![](/img/trans.png)
[英]Java on OS X: “open” command won't run if .app package contains a JVM bundle
[英]Netbeans 7.2 won't open on OS X
我在运行JDK 7的OSX Mountain Lion上安装了Netbeans。一切正常。 然后我的机器无故崩溃。 在此之后,我再也无法打开Netbeans了。
如果我尝试从命令行启动Netbeans:
/Applications/NetBeans/NetBeans 7.2.app/Contents/MacOS/netbeans
然后它工作正常。 从那里我可以选择Netbeans>关于并确认我的userdir和cachedir是:
User directory: /Users/<user>/Library/Application Support/NetBeans/7.2
Cache directory: /Users/<user>/Library/Caches/NetBeans/7.2
所以,我删除了这些目录并再次尝试,但唉,我只能通过命令行启动netbeans。
赞赏的想法......
听起来像这样根本不是NetBeans问题,而是捆绑包的问题,因此OS X没有按原样启动应用程序。
为了验证,我尝试从命令行通过Finder打开NetBeans:
open -a "NetBeans 7.2.app"
此命令将要求系统启动程序打开应用程序,就像您单击了图标一样。 在您的情况下,它可能无法打开。 如果这是真的,那么您知道终端环境中的某些东西不允许NetBeans启动。
我将采取的下一步是查看包内容:检查/Applications/NetBeans/NetBeans 7.2.app/Contents/Info.plist
以查找似乎/Applications/NetBeans/NetBeans 7.2.app/Contents/Info.plist
的任何内容 - 此文件是OS X寻找的信息存储看看如何启动包,它的图标是什么等等 - 特别是,我认为你应该查看CFBundleExecutable
值,看看用于启动应用程序的命令。 如果它不是netbeans
,你已经找到了一个很大的暗示:可能会出现问题:设置了捆绑包以便启动器运行bundle_dir.app/Contents/{platform}/{CFBundleExecutable_value}
。 查看CFBundleExecutable应该会显示是否有其他脚本用于启动应用程序而不仅仅是运行netbeans
。
从这一点开始,您将需要进行更多挖掘,但希望这些信息足以帮助您开始跟踪从OS X启动器启动应用程序的方式。 有关更多信息和更好的参考,请查看此链接 ,这是Apple的Info.plist
密钥的文档。
最后,您应该注意所有应用程序的启动信息都是高度缓存的; 我听说如果您对Info.plist进行了更改,则必须重命名应用程序包并将其命名为以使启动程序获取更改。
祝好运!
这是一个想法:使用Eclipse> =)
但严重的是,Netbeans的元数据/缓存数据文件中有些东西被破坏了。 你清除了其中几个,但其他地方可能还有其他人。
尝试将快捷方式中的启动命令与您在控制台中键入的内容进行比较。 它们是一样的吗?
要查找根本原因,我将检查NetBeans日志,如此处所述
/ Users / yourname / Library / Application Support / NetBeans / 7.2 / var / log / messages.log
如果这没有帮助,我会将您的项目归档并在您的计算机上安装一个干净的NetBeans,然后将已归档的项目导回NetBeans。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.