java-Maven错误:也许您在JRE而不是JDK上运行?
我以前从未与Maven合作过,并且正在按照这里的说明进行操作。 当我运行命令
mvn integration-test -Pamp-to-war
最初,它下载了一堆依赖关系,最后显示出来,
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
我在Ubuntu 13.04上。
如果您想让我告诉您什么,请告诉我。 谢谢。
编辑
当我做mvn -version时我得到/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"
另外,我发现了其他人面临的这个问题。 但是我不确定如何执行指定的解决方案?
进一步的编辑。
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
18个解决方案
119 votes
我一直在使用Java 8(ubuntu 16.04)遇到相同的问题,试图使用/usr/lib/jvm/java-8-openjdk-amd64命令行进行编译。
我验证了我的/usr/lib/jvm/java-8-openjdk-amd64、java -version和mvn -version。指向/usr/lib/jvm/java-8-openjdk-amd64的一切似乎都还不错。
似乎java-8-openjdk-amd64在默认情况下并未完全安装,仅包含JRE(尽管其名称为“ jdk”)。
重新安装JDK可以解决问题。
sudo apt-get install openjdk-8-jdk
然后,将一些新文件和新文件夹添加到/usr/lib/jvm/java-8-openjdk-amd64,并且mvn可以再次编译。
ced answered 2020-01-10T18:19:21Z
42 votes
显然,它需要$ JAVA_HOME的lib文件夹中的tools.jar文件。 我没有lib文件夹,所以我使用命令重新安装了jdk
apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib
另外,此链接可能会对某些人有所帮助。
Kraken answered 2020-01-10T18:19:45Z
12 votes
这是因为运行jre而不是jdk,所以要安装jdk 以下步骤
在Amazon Linux / Redhat中安装Java 8
-> yum search java | grep openjdk
-> update-alternatives --config javac #pick java 1.8
--> update-alternatives --config javac #pick java 1.8
-> update-alternatives --config javac #pick java 1.8并按1
-> update-alternatives --config javac #pick java 1.8并按2
谢谢
sachin_ur answered 2020-01-10T18:21:31Z
6 votes
对我而言,它的工作原理如下。请查看JAVA_HOME环境变量,它是否指向JRE或JDK。如果它指向JRE,您将面临“也许您正在JRE而不是JDK上运行”的问题。 如果是这样,请将路径更改为JDK。
这样修改,对我有用。
JAVA_HOME C:\ Program Files \ Java \ jdk1.8.0_31
sks answered 2020-01-10T18:22:00Z
4 votes
在pom.xml中添加此配置
...
...
maven-compiler-plugin
3.1
1.7
1.7
true
C:\Program Files\Java\jdk1.7.0_79\bin\javac
...
AnuradhaS answered 2020-01-10T18:22:20Z
3 votes
只需添加更多有关设置位置的详细信息。 主要原因是环境变量中的JAVA_HOME设置应指向正确的JDK位置。
检查系统->高级系统设置
单击环境变量
添加变量JAVA_HOME->“ C:\ Program Files \ Java \ jdk1.8.0_141;”
编辑“路径”->附加%JAVA_HOME%; 到现有文字。
Barani r answered 2020-01-10T18:22:57Z
3 votes
问题陈述=在此环境中未提供编译器。 也许您在JRE而不是JDK上运行?
解
请按如下所示设置环境变量以解决该问题
变量名称:JAVA_HOME
变量值:C:\ Program Files \ Java \ jdk1.8.0_202
变量名称:M2_HOME
变量值:C:\ Program Files \ apache-maven-3.6.0
此外,在“系统变量”中添加Java和maven路径,如下所示:
C:\ Program Files \ Java \ jdk1.8.0_202 \ bin
C:\ Program Files \ apache-maven-3.6.0 \ bin
Navdeep Ghotra answered 2020-01-10T18:23:56Z
2 votes
这就是我解决问题的方式
右键单击项目>属性> Java编译器(选择您正在使用的那个)
对我来说是1.5,但我安装了1.8。 所以我将其更改为1.8 .. voilla起作用了!
Mack answered 2020-01-10T18:24:25Z
1 votes
检查/ usr / bin是否具有'javac'。 如果尚未安装,则必须安装JRE并必须安装jdk开发人员版本,例如“ java-1.8.0-openjdk-devel.x86_64”
Raja Rajan answered 2020-01-10T18:24:45Z
1 votes
在AWS Linux AMI上安装yum install java-1.8.0-openjdk-devel -y软件包后,我遇到了相同的问题。 我做出的错误假设是,因为文件以openjdk结尾,所以它将是jdk版本。 不是这种情况。
openjdk安装页面清楚地说明了所有内容。
java-1.8.0-openjdk软件包仅包含Java运行时 环境。 如果您要开发Java程序,请安装 java-1.8.0-openjdk-devel软件包。
如果您已经安装了java-1.8.0-openjdk软件包,请保留它和JAVA_HOME值(如果它适用于JRE),然后使用yum install java-1.8.0-openjdk-devel -y安装java-1.8.0-openjdk-devel软件包。
Paul.M answered 2020-01-10T18:25:20Z
1 votes
我面临着同样的问题。 为了解析,我需要将JDK放在PATH中的JRE之前。
MikeF answered 2020-01-10T18:25:39Z
1 votes
我正在使用26968209604261980198016,并以目标26968209604261980198018运行26968209604261980198017命令时遇到相同的错误。经过一番谷歌搜索后,我找到了运行以下命令的解决方案。
sudo yum install java-1.8.0-openjdk-devel
Sheikh Abdul Wahid answered 2020-01-10T18:26:04Z
0 votes
右键单击项目文件夹(Maven之一),选择属性,然后从属性窗口中再次选择Java Compiler,然后查看针对编译器合规性级别选择的内容,并确保它与jre版本相同。 在我的情况下,我有1.8,但针对编译器合规性级别选择了1.5。 选择1.8后,构建成功,没有此错误。
Qaddaffi answered 2020-01-10T18:26:25Z
0 votes
我遇到了相同的错误,但缺少用户变量:JAVA_HOME和SDK的值-在我的情况下为“ C:\ Program Files \ Java \ jdk-9.0.1”
user1913615 answered 2020-01-10T18:26:45Z
0 votes
即使JAVA_HOME指向JDK,我也遇到了问题。 花了一些时间弄清楚为什么会引发异常。
问题是我在窗口计算机上将JAVA_HOME设置为管理员用户。 您需要将指向正确的JDK的JAVA_HOME环境变量添加到用户配置文件环境变量设置中。
Arnav Rao answered 2020-01-10T18:27:09Z
0 votes
为了解决我在Linux上没有JDK的问题,我只需下载JDK并上传到Linux服务器,然后键入:焦油xvf jdk-8u45-linux-x64.tar.gz
Hailin Tan answered 2020-01-10T18:27:29Z
0 votes
我在Eclipse Maven项目中面临着同样的问题,我所做的只是
右键点击项目
Maven->更新项目
或按ALT + F5
Abhishek D K answered 2020-01-10T18:28:02Z
0 votes
如果上述解决方案不起作用,则尝试将Java路径放在环境变量路径中的maven之前。 它为我工作。
C:\Program Files\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin
C:\Program Files\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin
lokesh soni answered 2020-01-10T18:29:27Z