Netbeans 7.2在OS X上无法打开

3

我在运行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会输出错误日志,我建议先检查那里。 - user1329572
删除NetBeans的缓存在过去帮助我解决了NetBeans的故障。您可以在_.netbeans_目录的_var_文件夹中找到缓存。我的_.netbeans_文件夹位于我的主目录中。 - jahroy
奇怪的是,如果我将Netbeans可执行快捷方式(/Applications/NetBeans/NetBeans\ 7.2.app/Contents/MacOS/netbeans)拖到Dock中,我就可以运行“exec”图标。它会打开一个终端窗口,运行命令,并正常打开Netbeans! - sparkyspider
3个回答

3
听起来这不是一个NetBeans的问题,而是一个与捆绑包相关的问题,因此OS X没有按照应该的方式启动应用程序。
为了验证,我会尝试通过Finder从命令行打开NetBeans:
“open -a“ NetBeans 7.2.app ””
这个命令会要求系统启动器打开应用程序,就像你点击图标一样。在你的情况下,它可能不会打开。如果是这样,那么你就知道不是你的终端环境允许NetBeans启动的问题。
下一步我会查看软件包内容:检查 /Applications/NetBeans/NetBeans 7.2.app/Contents/Info.plist 内容是否有问题,这个文件是 OS X 启动软件包所需的信息存储库,包括如何启动软件包、图标等。特别是,您应该查看 CFBundleExecutable 值,以查看启动应用程序使用了哪个命令。如果不是 netbeans,那么您可能已经找到了一个重要的提示:bundles 被设置为运行 bundle_dir.app/Contents/{platform}/{CFBundleExecutable_value}。查看 CFBundleExecutable 应该可以显示出比运行 netbeans 更复杂的启动脚本。
从这里开始,您需要进行更深入的挖掘,但希望这些信息足够让您开始跟踪如何从 OS X launcher 启动应用程序。有关更多信息和更好的参考,请查看 this link,这是苹果关于 Info.plist 键的文档。
最后,你应该注意到所有应用程序的启动信息都被大量缓存;我听说如果你对Info.plist进行更改,你必须重新命名应用程序包并将其命名回来,才能使更改被启动器识别。祝好运!

嗨@Matt,感谢你的回答。奇怪的是,open -a“NetBeans 7.2.app”实际上确实起作用了,但图标仍然无法正常显示。Info.plist中CFBundleExecutable的值确实为netbeans,但双击图标仍然无法正常工作...由于赏金只剩一个小时,而你的答案最接近,所以我授予了你赏金。 - sparkyspider

1

这里有一个想法:使用Eclipse >=)

但是说真的,Netbeans的元数据/缓存数据文件中出现了一些损坏。您清除了其中的几个,但可能还有其他文件。

尝试比较您快捷方式中的启动命令和您在控制台中输入的命令是否相同。


1
我不是苹果的粉丝,但在KDE甚至Windows操作系统中,你可以右键点击快捷方式并进入属性(或类似的选项),然后查看命令。例如:http://i47.tinypic.com/5ygo79.png - kwikness

1
为了找到根本原因,我会检查NetBeans日志,详见这里

/Users/yourname/Library/Application Support/NetBeans/7.2/var/log/messages.log


如果这没有什么帮助,建议您将项目进行归档,并在计算机上执行 NetBeans 的全新安装,然后将存档的项目重新导入到 NetBeans 中。

已经检查过了。通过“图标”版本没有记录任何内容。命令行版本按预期进行记录。 - sparkyspider
@MarkvanWyk,启动细节甚至没有被记录下来?如果你所说的“icon”版本是指通过快捷方式启动NetBeans,那么我会检查它是否调用与命令行相同的可执行文件。 - user1329572
是的,启动细节没有被记录。是的,我的意思是应用程序存档“/Applications/Netbeans\ 7.2.app”无法被点击。 - sparkyspider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接