无法在Eclipse中运行/调试Java应用程序(JavaTimeZone问题)

我正在尝试在MacBook上开始使用Eclipse / Java / Scala。 已安装的JDK为1.5。 Scala的SDT插件需要1.6,它包含在操作系统更新中,但我还手动安装了Apple的软件包以更新1.6。 问题是我无法从Eclipse运行任何东西。 我总是收到以下错误:

An internal error occurred during: "Launching TestFooBasicTest". Could not initialize class com.ibm.icu.impl.JavaTimeZone

我也尝试使用旧的1.5版本,但无济于事。

这里出了什么问题?

我尝试使用Ubuntu 10.4和stock eclipse(Galileo 3.5.2)和java(java-6-openJdk)运行scala程序时遇到了同样的问题 – 当然,还有从scala站点下载的scala pluging。 我通过手动更改/usr/lib/eclipse/plugins/com.ibm.icu_4.0.1.v20100125.jar来修复它,正如此线程中所建议的那样(顺便说一句,我发现Emacs可以更改一个jar文件:nice):

http://www.eclipse.org/forums/index.php?t=msg&goto=488654

这是由ubuntu openjdk包引起的,其中包含TimeZone配置的符号链接。 论坛post的最佳解决方案是,

重新安装tzdata-java是我的修复:

 sudo apt-get --reinstall install tzdata-java 

问题是:

 An internal error occurred during: "Launching TestFooBasicTest". Could not initialize class com.ibm.icu.impl.JavaTimeZone 

快速谷歌搜索显示该类属于IBM Globalization包ICU。 http://www-01.ibm.com/software/globalization/icu/index.jsp

一个猜测是,这是Scala内部使用的软件包,你没有正确安装,导致Scala启动失败。

确保在运行配置(运行/运行配置)中设置java 1.6。

你升级到Snow Leopard了吗? 您使用的是Eclipse SWT / Carbon还是Eclipse SWT / Cocoa? 升级到SL后,我发现Eclipse有些奇怪。 从Eclipse SWT / Carbon切换到Eclipse SWT / Cocoa有帮助。 还要恢复我的1.5 VM,SL安装以偷偷摸摸的方式删除(通过删除并留下指向1.6的符号链接),帮助我修复了具有本机的Java代码(即usb-serial端口代码)的几个问题。

检查Eclipse知道哪些JVM及其所在位置(首选项 – > Java – >已安装的JRE),还要检查程序的运行/调试配置。 默认情况下,Eclipse知道用于启动自身的JRE以及您手动添加的其他JRE。 但是,如果升级某些组件并更改了JRE,Eclipse可能会对它们感到“困惑”。

我在Windows上遇到了与Eclipse相同的问题。 我尝试了许多不同的东西,包括在新工作区中新的hello world程序。 我终于通过将Eclipse指向要执行的不同JRE来实现此目的。 我知道Apple为Mac提供了JRE,但看起来这个问题似乎与Eclipse有关用于运行Eclipse本身的JRE有关。 请参阅此处以配置Eclipse执行的VM。