簡體   English   中英

同時在JAVA_HOME上使用32位和64位JDK

[英]JDK 32bit and 64bit on JAVA_HOME simultaneously

我在使用32Bit JDK(1.8)的Windows 8.1中使用smartGIT,我需要將JAVA_HOME設置為32bit目錄

但是現在我正在使用需要JDK 64bit(已安裝1.8)的Android Studio以及我需要將JAVA_HOME設置為指向64bit目錄

有沒有一種方法可以將它們設置為相同的變量,並且取決於軟件是否需要JDK 32或64可以選擇適當的框架?

我試圖通過用這樣的半冒號分隔它們來同時設置它們

JAVA_HOME

C:\Program Files\Java\jdk1.8.0_25\;C:\Program Files (x86)\Java\jdk1.8.0_25

但這僅適用於32BIT版本,但64BIT仍然無效

感謝您的支持

這不是您問題的直接答案。 但是我認為這將幫助您解決在64位JVM上運行SmartGit的底線問題。

轉到SmartGit安裝目錄下的bin文件夾。 在此處可以找到“ smartgit64.exe”可執行文件,以64位模式啟動SmartGit。

我使用64位JDK在Win8.1 64位中平穩運行。

沒有辦法讓靜態JAVA_HOME滿足我所知道的版本或特定於位的子過程。

您沒有說您在什么平台上,但是通常導出的環境變量是固定的,可以用作子過程的進一步調整的基礎,或者可以完全重新定義。

但是,您可以做的是嘗試調整從中調用這些進程的環境,以便它們具有自己的自定義環境。 例如,您可以設置自己的JAVA_ROOT,然后使用f作為創建JAVA_HOME的基礎,以及為特定JRE創建硬編碼或腳本/函數獲取的環境變量,以使從此運行的所有內容都成為“真實的” JAVA_HOME子shell。

另外,如果您使用的是OS X,則可以使用實用程序來設置和獲取已安裝JRE的系統信息。 可以在腳本等中使用。其他平台也具有類似的工具。

另外,仔細查看您的工具集。 確保JAVA_HOME是設置其使用的VM的唯一方法-通常,這只是設置此方法的一種。

[編輯]

我忘了評論中提到的-d32技巧。 如果可行,那將是一個很好的解決方案,並且您可以對所有調用使用相同版本的VM。

[編輯]

好的,因為您使用的是Windows,所以您可以嘗試從每個Java應用程序各自的環境中啟動。 如果是滾動方式,則使用.cmd或.bat文件,也可以創建在調用特定應用程序之前進行調整的Windows快捷方式。

例如,如果有一個Java主程序要從命令行運行,則很容易將整個命令行包裝在.bat文件中。 例如:

set JAVA_HOME=C:\Some\Path\To\A\JRE
set APP_HOME=C:\Some\Path\To\A\Jar
set JAVA_OPTS="-Dfoo=bar"
%JAVA_HOME%\bin\java.exe %JAVA_OPTS% -jar %APP_HOME%\myApp.jar

現在,運行此jarfile將使用您設置的特定Java可執行文件,還將新的JAVA_HOME環境傳遞到它啟動的Java進程。 這將覆蓋您在用戶或系統環境中設置的任何“默認” JAVA_HOME。

任何其他進程將不會看到這個JAVA_HOME,當.bat文件退出新定義消失。

另外,如果您始終通過雙擊來啟動Java應用程序或Java工具,則可以將這些應用程序包裝在Windows快捷方式中-即使您僅在可執行文件前面加上“ set JAVA_HOME = ...”,不過,請忘記這有多笨拙,所以我有點揮手!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM