我在Java1.6中使用了一些JSR166类,其中一些在java.util.concurrent下。我在OSX上,虽然我希望这最终能在Linux上运行。
如果设置了这个环境变量,就可以运行项目:
export MAVEN_OPTS=-Xbootclasspath/p:/Users/me/.m2/repository/org/codehaus/jsr166-mirror/jsr166/1.7.0/jsr166-1.7.0.jar我试着遵循这里的指令,并将设置放在pom.xml中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<version>3.0</version>
<compilerArguments>
<verbose/>
<bootclasspath>/Users/me/.m2/repository/org/codehaus/jsr166-mirror/jsr166/1.7.0/jsr166-1.7.0.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>不幸的是,这导致了无法找到java.lang的错误。如果我在classes.jar (显然是OSX的rt.jar版本)的bootclasspath中添加了一个引用,我可以修复这个错误,但这只会让我回到我开始的地方:
java.lang.SecurityException: Prohibited package name: java.util.concurrent如何设置maven以正确使用此参数?
发布于 2012-12-03 19:45:19
你应该检查一下安全经理。不幸的是,我不知道OSX的具体情况。默认情况下,位于JAVA_HOME/jre/lib/ java.security文件夹下的java.security和java.policy文件中定义了java.policy安全策略。还可以检查JVM的-Djava.security.manager和-Djava.security.policy选项。
发布于 2015-08-20 08:40:05
您不应该为此使用extdir而不是bootclasspath吗?
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<compilerArgs>
<arg>-verbose</arg>
<arg>-extdir /Users/me/.m2/repository/org/codehaus/jsr166-mirror/jsr166/1.7.0/</arg>
</compilerArgs>
</plugin>
</plugins>
[...]
</build>
[...]
</project>来自http://maven.apache.org/plugins/maven-compiler-plugin/examples/pass-compiler-arguments.html
https://stackoverflow.com/questions/13580659
复制相似问题