2

Java 1.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

ここの指示に従って、設定を my に入れてみました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.langclasses.jar(明らかに OSX のバージョンのrt.jar)への参照を追加するとbootclasspath、そのエラーを修正できますが、最初の場所に戻るだけです。

java.lang.SecurityException: Prohibited package name: java.util.concurrent

この引数を正しく使用するには、maven をどのように設定すればよいですか?

4

2 に答える 2

0

セキュリティマネージャーを確認する必要があります。残念ながら、OSX については詳しくわかりません。デフォルトでは、JAVA_HOME/jre/lib/security フォルダの下にある java.security および java.policy ファイルで定義されている JVMuses セキュリティ ポリシー。JVM の -Djava.security.manager および –Djava.security.policy オプションも確認してください。

于 2012-12-03T19:45:19.493 に答える
0

これには bootclasspath の代わりに extdir を使用すべきではありませんか?

<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から

于 2015-08-20T08:40:05.487 に答える