java - mvn 编译 : Unable to find package java. lang

标签 java maven

我有以下 maven-compiler-plugin 设置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArguments>
            <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
        </compilerArguments>
    </configuration>
</plugin>

执行mvn compile时,报Unable to find package java.lang in classpath or bootclasspath。但我确实在 /Library/Java/JavaVirtualMachines/jdk1.8/Contents/Home/jre/lib/rt.jar 中找到了 java.lang 包:

java/lang/Thread$UncaughtExceptionHandler.class
java/lang/ThreadGroup.class
java/lang/Runnable.class
java/lang/Thread.class
java/lang/ref/Finalizer.class
java/lang/ref/PhantomReference.class
java/lang/ref/FinalReference.class
java/lang/ref/WeakReference.class
java/lang/ref/SoftReference.class
java/lang/ref/Reference.class
......

我在 OS X 10.11.3 上使用 Oracle JDK 1.8。我应该提供什么额外信息?是JDK的问题还是项目的maven设置的问题?

编辑:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8/Contents/Home

编辑2:

不同于Maven : unable to find java.lang issue on OS X ,我正在使用 Oracle JDK

编辑3:

maven 版本

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.3", arch: "x86_64", family: "mac"

/Library/Java/JavaVirtualMachines/jdk1.8/Contents/Home是一个软链接(soft link)到/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home 显示在 maven 版本信息中

最佳答案

<compilerArguments>已弃用,但这不是它不起作用的原因。这些类型的参数仅在 <fork> 时有效设置为 true .

这对我有用:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <configuration>
     <source>1.8</source>
     <target>1.8</target>
     <fork>true</fork>
     <compilerArgs>
       <arg>-bootclasspath</arg>
       <arg>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</arg>
     </compilerArgs>
  </configuration>
</plugin>

关于java - mvn 编译 : Unable to find package java. lang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35715543/

相关文章:

java - 使用 Morphia 读取 BigDecimal

java - 带有 AclPermissionEvaluator 的 Spring Boot 导致 IllegalStateException : No ServletContext set

java - uniVocity - 按位置转换为列表

maven - 在 Maven 中如何从生成的 jar 中排除资源?

maven - Grails:为什么在编译期间执行 Config.groovy 文件?

java - 如何获取ezvcard中 'encoded'照片数据?

java - Get方法返回null

java - Vaadin 主题 : java. lang.Exception:Mixin 定义:未找到 valo

java - 使用旧版本运行 Apache Spark 最新版本的集群

eclipse - 无法使用 m2e 插件在 Eclipse Kepler 中搜索 Artifact