groovyのインストール
環境:
Mac OS X(10.4.7)
JDK1.5.0_06
groovy-1.0-JSR-06
配置
/usr/local/groovy-1.0-JSR-06
/usr/local/groovyからリンクを張った
環境変数の設定
/Users/hisaboh/.bash_profile
if [ -f ~ /.bashrc ]; then . ~/.bashrc fi
/Users/hisaboh/.bashrc
export PATH=$PATH:/opt/local/bin:/usr/local/groovy/bin
ここでgroovyshを実行すると、下記のエラーが出て実行できない。
java.lang.SecurityException: Prohibited package name: java.lang at java.lang.ClassLoader.preDefineClass(ClassLoader.java:479) at java.lang.ClassLoader.defineClass(ClassLoader.java:614) 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.loadClass(RootLoader.java:143) 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.loadClass(RootLoader.java:143) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:121) at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:160)
対処方法は以下の通り
[#GROOVY-1386] command line tools fail with SecurityException on OSX - jira.codehaus.org
Groovy on a Mac
startGroovyの中のこの部分を
# For Darwin, use classes.jar for TOOLS_JAR TOOLS_JAR="$JAVA_HOME/lib/tools.jar" if $darwin; then TOOLS_JAR="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar" fi
# For Darwin, use classes.jar for TOOLS_JAR TOOLS_JAR="$JAVA_HOME/lib/tools.jar" #if $darwin; then # TOOLS_JAR="/System/Library/Frameworks/(中略) #fi