2016-04-23 16 views
0

私のプラットフォームはCentOS 7 groovy 1.8.9-7です。これはおそらく関連性があります。なぜgroovycはセキュリティマネージャーに影響を与えますか?

$ groovy -version 
Groovy Version: 1.8.9 JVM: 1.7.0_99 Vendor: Oracle Corporation OS: Linux 
$ java -version 
java version "1.7.0_99" 
OpenJDK Runtime Environment (rhel-2.6.5.0.el7_2-x86_64 u99-b00) 
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode) 

私はシンプルなグルーヴィーなファイルがあります:私はそれを実行した場合、それは例えば、正常に動作します

#!/usr/bin/env groovy 
println System.getProperty("java.class.path") 

を:

$ groovy info.groovy 
/usr/share/java/ant.jar:/usr/share/java/ant/ant-junit.jar:/usr/share/java/ant-launcher.jar:/usr/share/java/antlr.jar:/usr/share/java/objectweb-asm/asm.jar:/usr/share/java/objectweb-asm/asm-analysis.jar:/usr/shar 
e/java/objectweb-asm/asm-tree.jar:/usr/share/java/objectweb-asm/asm-util.jar:/usr/share/java/bsf.jar:/usr/share/java/commons-cli.jar:/usr/share/java/commons-logging.jar:/usr/share/java/groovy.jar:/usr/share/java 
/ivy.jar:/usr/share/java/jline.jar:/usr/share/java/jsp.jar:/usr/share/java/junit.jar:/usr/share/java/servlet.jar:/usr/share/java/xstream.jar:/usr/share/java/jansi.jar 

はしかし、groovycはそれにチョーク:

$ groovyc info.groovy                                       [19/472] 
>>> a serious error occurred: BUG! exception in phase 'semantic analysis' in source unit 'info.groovy' Prohibited package name: java.lang 
>>> stacktrace: 
BUG! exception in phase 'semantic analysis' in source unit 'info.groovy' Prohibited package name: java.lang 
     at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:850) 
     at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:550) 
     at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:499) 
     at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:482) 
     at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:60) 
     at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:216) 
     at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompile(FileSystemCompiler.java:149) 
     at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompileWithErrorHandling(FileSystemCompiler.java:179) 
     at org.codehaus.groovy.tools.FileSystemCompiler.main(FileSystemCompiler.java:163) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108) 
     at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130) 
Caused by: java.lang.SecurityException: Prohibited package name: java.lang 
     at java.lang.ClassLoader.preDefineClass(ClassLoader.java:661) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:797) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
     at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at org.codehaus.groovy.tools.RootLoader.oldFindClass(RootLoader.java:152) 
     at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:124) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:412) 
     at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:692) 
     at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:560) 
     at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:183) 
[...] 

なぜ、どのように修正できますか?

+1

なぜ3年以上前からgroovyを使用していますか?あなたのクラスパス上にJavaのコアライブラリを持っているように思えます... –

+0

コンパイルしようとすると、 '#!/ usr/bin/env groovy'行が削除されます –

+0

RHEL 7でサポートされているのはシバン違いを生むようには見えません... – sosiouxme

答えて

0

私は正確な問題を把握していませんでしたが、私の開発環境に固有のようです。 CentOS 7またはRHEL 7の新規インストールでgroovyをインストールするとうまくいくようです。

関連する問題