Maven错误:也许你是在运行JRE而不是运行JDK?

Kra*_*ken 52 java compiler-errors maven

我以前从未和Maven合作过,我遵循这里的说明.当我运行命令

mvn integration-test -Pamp-to-war
Run Code Online (Sandbox Code Playgroud)

它最初下载了一大堆依赖项,最后它表明,

COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
Run Code Online (Sandbox Code Playgroud)

我在ubuntu 13.04.

如果你有什么要我告诉你的,请告诉我.谢谢.

编辑

我什么时候echo $JAVA_HOME得到/usr/lib/jvm/java-7-openjdk-i386/

当我做 mvn -version

我明白了

Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.8.0-26-generic", arch: "i386", family: "unix"
Run Code Online (Sandbox Code Playgroud)

另外,我发现了其他人面临的这个问题.但我不确定如何解决指定的解决方案?

进一步编辑.

kraken@kraken-Inspiron-1545:/usr/lib/jvm/java-7-openjdk-i386$ ls -l
total 12
drwxr-xr-x 2 root root 4096 Sep  9 10:44 bin
lrwxrwxrwx 1 root root   41 Jul  4  2013 docs -> ../../../share/doc/openjdk-7-jre-    headless
drwxr-xr-x 5 root root 4096 Oct 13  2013 jre
drwxr-xr-x 4 root root 4096 Oct 13  2013 man
Run Code Online (Sandbox Code Playgroud)

ced*_*ced 121

我一直面临着与java 8(ubuntu 16.04)相同的问题,尝试使用mvn命令行进行编译.

我验证了我的$JAVA_HOME,java -versionmvn -version.一切似乎都可以指向/usr/lib/jvm/java-8-openjdk-amd64.

似乎java-8-openjdk-amd64默认情况下不是完全安装的,只包含JRE(尽管名称为"jdk").

重新安装JDK就可以了.

sudo apt-get install openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)

然后添加一些新文件和新文件夹/usr/lib/jvm/java-8-openjdk-amd64,mvn可以再次编译.

  • 你是****天才。谢谢你。我想,我已经安装了 jdk,但你是对的。这是 amd64 java 的奇怪问题:/ (3认同)
  • 我想这与接受的答案本质上是一样的 - 没有 JDK 你也不会有 tools.jar。 (2认同)
  • 运行 `javac -version` 应该能够确认这一点,因为它不包含在 JDK 中。 (2认同)

Kra*_*ken 42

显然,它需要我的$ JAVA_HOME的lib文件夹中的tools.jar文件.我没有lib文件夹,所以我使用命令重新安装了我的jdk

apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib
Run Code Online (Sandbox Code Playgroud)

此外,这个链接可能会帮助一些人.


sac*_*_ur 12

这是因为运行jre而不是jdk,按照以下步骤安装jdk

在amazon linux/redhat中安装java 8

- > yum search java | grep openjdk

- > yum install java-1.8.0-openjdk-headless.x86_64

- > yum install java-1.8.0-openjdk-devel.x86_64

- > update-alternatives --config java #pick java 1.8并按1

- > update-alternatives --config javac #pick java 1.8并按2

谢谢


小智 9

问题陈述 = 此环境中未提供编译器。也许您在 JRE 而不是 JDK 上运行?

解决方案

请设置如下环境变量以解决问题

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_202

变量名:M2_HOME

变量值:C:\Program Files\apache-maven-3.6.0

此外,在“系统变量”中添加 Java 和 maven 路径,如下所示:

  1. C:\Program Files\Java\jdk1.8.0_202\bin
  2. C:\Program Files\apache-maven-3.6.0\bin


Wat*_*ter 7

当 JAVA_HOME 未正确设置时,我会收到此错误。

我已经尝试过这个命令

$ /usr/libexec/java_home -V
Run Code Online (Sandbox Code Playgroud)

这提供了 3 个虚拟机

Matching Java Virtual Machines (3):
1.8.291.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_291 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
1.8.0_181 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

在这种情况下,需要特定版本。

$ /usr/libexec/java_home -v1.8
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Run Code Online (Sandbox Code Playgroud)

不同于

$ /usr/libexec/java_home -v1.8.0
/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

因此解决方案是将~/.bash_profile设置为

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0`
Run Code Online (Sandbox Code Playgroud)


sks*_*sks 6

对我来说,它的工作方式如下.请查看JAVA_HOME环境变量,无论是指向JRE还是JDK.如果它指向JRE,您将面临"也许您正在运行JRE而不是JDK"问题.如果这样改变了JDK的路径.

像这样修改,它对我有用.

JAVA_HOME C:\ Program Files\Java\jdk1.8.0_31


Bar*_*i r 5

只需添加有关设置位置的更多详细信息。主要原因是环境变量中的 JAVA_HOME 设置应该指向正确的 JDK 位置。

  1. 检查系统->高级系统设置
  2. 单击环境变量
  3. 添加变量 JAVA_HOME -> "C:\Program Files\Java\jdk1.8.0_141;"
  4. 编辑“路径”->追加%JAVA_HOME%;到现有文本。


She*_*hid 5

我正在使用centos并在运行mvn带有目标的命令时遇到相同的错误install。经过一番谷歌搜索后,我找到了运行以下命令的解决方案。

sudo yum install java-1.8.0-openjdk-devel