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 -version
和mvn -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可以再次编译.
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 路径,如下所示:
当 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)
对我来说,它的工作方式如下.请查看JAVA_HOME环境变量,无论是指向JRE还是JDK.如果它指向JRE,您将面临"也许您正在运行JRE而不是JDK"问题.如果这样改变了JDK的路径.
像这样修改,它对我有用.
JAVA_HOME C:\ Program Files\Java\jdk1.8.0_31
只需添加有关设置位置的更多详细信息。主要原因是环境变量中的 JAVA_HOME 设置应该指向正确的 JDK 位置。
- 检查系统->高级系统设置
- 单击环境变量
- 添加变量 JAVA_HOME -> "C:\Program Files\Java\jdk1.8.0_141;"
- 编辑“路径”->追加%JAVA_HOME%;到现有文本。
我正在使用centos
并在运行mvn
带有目标的命令时遇到相同的错误install
。经过一番谷歌搜索后,我找到了运行以下命令的解决方案。
sudo yum install java-1.8.0-openjdk-devel
归档时间: |
|
查看次数: |
166029 次 |
最近记录: |