我使用的是Windows 7,最近安装了Eclipse Helios(64位)。
我从Eclipse安装中控制了Tomcat7的本地安装,Eclipse和tomcat正确启动。但是,我在使用M2Eclipse插件时遇到了一些错误,并且意识到我使用的JDK不是64位,所以将我的JDK更新为64位。
不幸的是,由于将JDK更新为64位,我的tomcat将不再启动,而是在堆栈跟踪中出现以下错误:
02-May-2011 21:02:38 org.apache.catalina.startup.Bootstrap initClassLoaders
SEVERE: Class loader creation threw exception
java.lang.NoSuchFieldError: threadAllocatedMemorySupport
at sun.management.VMManagementImpl.initOptionalSupportFields(Native Method)
at sun.management.VMManagementImpl.<clinit>(VMManagementImpl.java:47)
at sun.management.ManagementFactory.<clinit>(ManagementFactory.java:468)
at java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504)
at org.apache.catalina.startup.Bootstrap.createClassLoader(Bootstrap.java:184)
at org.apache.catalina.startup.Bootstrap.initClassLoaders(Bootstrap.java:97)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:208)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:406)
是否有其他人遇到此问题或知道问题可能是什么?
--------------- EDIT ------------------------
此外,我已经使用startup.bat启动了本地tomcat并且启动正常,但是当我尝试访问管理器时,我得到了一个java.lang.outOfMemoryError permgen Space错误(我之前没有得到 - 所有运行正常在jdk升级之前)
答案 0 :(得分:1)
好的,我发现了问题
上述人员在调查正在使用的JDK版本方面是正确的。
发生了什么事,虽然我已经更新了Eclipse prefs以使用64bitJDK,但是JRE系统库仍然指向旧的JDK - 我之前从未遇到过这个问题,并且很确定我之前更新过JDK它也自动刷新了JRE库列表。然后,我从列表中删除了所有JRE系统库并刷新,然后使用64位jdk中的库重新填充
答案 1 :(得分:0)
可能安装了错误的tcnative?从bin目录中删除它,看看会发生什么