2017-08-30 60 views
3

我知道maven使用JAVA_HOME环境变量来启动自己。但是由于缺乏管理权限(公司的安全政策),我无法改变这个变量。我安装了目前由maven使用的Oracle JRE。我在Windows 10上运行。如何在windows上硬编码由maven使用的java

我想将我的maven硬编码为使用特定的JDK文件夹来运行。我正在处理的一个解决方案是在$MAVEN_HOME\bin\mvn文件中硬编码,但我不能这样做。当我试图添加类似:

set JAVA_HOME="E:\ProgramFiles\java\jdk8" 
export JAVA_HOME="E:\ProgramFiles\java\jdk8" 
JAVA_HOME=`E:\ProgramFiles\java\jdk8` 

在该文件中它仍然指向安装了JRE,因为我可以从mvn -version命令的输出中看到。

Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T22:39:06+03:00) Maven home: E:\ProgramFiles\apache-maven-3.5.0\bin\.. Java version: 1.8.0_131, vendor: Oracle Corporation Java home: C:\Program Files\Java\jre1.8.0_131 Default locale: ru_RU, platform encoding: Cp1251 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

的问题是:我需要如何从$MAVEN_HOME\bin为了使用硬编码所需的JDK版本改变我mvnmvn.cmd文件?还是有另一种解决方案(因为我需要从任何地方运行mvn命令 - 并且它需要使用特定的jdk),除了更改环境变量?

回答

2

在Linux中,您可以通过编辑/创建mavenrc文件来做同样的事情。

vi ~/.mavenrc 

一些输入,如:

export PATH 
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home 
export PATH=${PATH}:$JAVA_HOME/bin 

我在Windows 10上运行

可以有类似的文件(有没有试过)在%HOME%\mavenrc.bat创建有适当的定义。

编辑:感谢@Robert指点出来,窗户其

%USERPROFILE%\mavenrc_pre.cmd 

文件,您需要修改/创建。

+2

对于Windows是'%USERPROFILE%\ mavenrc_pre.cmd' –

+0

@RobertScholte谢谢:)在回答更新中...一直以来长在Windows上工作。 :P – nullpointer

+0

我没有那个文件 –

0

您不需要在Windows中使用导出命令。 你可以做的是,编辑mvn.cmd文件并在文件的开头定义你自己的MAVEN_JAVA_HOME。

set MAVEN_JAVA_HOME="E:\ProgramFiles\java\jdk8" 
echo %MAVEN_JAVA_HOME% 

,代之以MAVEN_JAVA_HOME所有JAVA_HOME在mvn.cmd

+0

OP没有权限编辑这个文件,因为他说:“我正在处理的一个解决方案是在$ MAVEN_HOME \ bin \ mvn文件中对其进行硬编码,但我不能这样做,因为当我尝试添加如下内容:“ – Ferrybig

相关问题