2017-08-30 62 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

相關問題