Saturday, February 16, 2008

运行Groovy出现java.lang.SecurityException: Prohibited package name: java.lang解决办法

昨天安装了新版本的Groovy V1.5.4,当运行groovy命令的时候出现以下错误:

java.lang.SecurityException: Prohibited package name: java.lang
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:479)
at java.lang.ClassLoader.defineClass(ClassLoader.java:713)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:160)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:254)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at org.codehaus.groovy.tools.RootLoader.oldFindClass(RootLoader.java:142)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at org.codehaus.groovy.tools.RootLoader.oldFindClass(RootLoader.java:142)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:91)
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
Exit 1

后来检查了环境变量,发现问题出在CLASSPATH环境变量上,我的环境变量里CLASSPATH是 “.:/pcc/app/jdk1.5.0_04_x86/jre/lib/rt.jar”,是环境变量和Groovy的有冲突,后来我把CLASSPATH环境变量给删除了,然后再运行groovy,问题就解决了。

No comments: