[英]how do i set JAVA_HOME in bash?
我的主機系統是Windows 7
我想讓它在CYGWIN中工作。
我需要將一個名為JAVA_HOME的環境變量設置為c/program files (x86)/java/jre7
這是我嘗試過的:
$myjava=cat c/program\ files\ \(x86\)/java/jre7
export JAVA_HOME=myjava
但我得到:
第9行:c /程序文件(x86)/ java / jre7:沒有這樣的文件或目錄錯誤:未設置JAVA_HOME。
我究竟做錯了什么?
export JAVA_HOME=c:/program\ files\ \(x86\)/java/jre7
兩個錯誤:首先,您嘗試使用一個設置為一次性的變量執行“ c/program files (x86)/java/jre7
”,其次,看起來您正在使用bourne-shell語義:首先,您必須設置變量,然后可以將其導出。
$myjava=cat c/program\\ files\\ (x86)/java/jre7
說 . 。 這就是為什么您得到“ c /程序文件(x86)/ java / jre7:沒有這樣的文件或目錄”的原因。
. 在bash中, export JAVA_HOME=myjava
這一行表示要 。 錯誤消息“錯誤:未設置JAVA_HOME。” 要么意味着您需要將其分解(不使用bash?),因為JAVA_HOME=$myjava; export JAVA_HOME
, and if you fix the first line, it'll all get better. JAVA_HOME=$myjava; export JAVA_HOME
,或者這意味着未將JAVA_HOME設置 ,如果您修復了第一行,一切都會變得更好。
@BMargulies Answer提供了一個解決方案。 但是我認為了解您做錯了事的原因很重要……以便下次您可以(至少)更好地解決問題。
查看您的第一個命令行...
$myjava=cat c/program\ files\ \(x86\)/java/jre7
這有很多問題。 首先,用於設置shell變量的語法為:
<name>=<word>
因此,您在第一行中實際要做的是:
它將一個名稱未知的變量設置為字符串“ cat”:
然后,它嘗試作為命令運行該行的其余部分(即“ c / program \\ files \\(x86)/ java / jre7”)。 但這不是命令:它是目錄。 這就是您看到的“未找到”錯誤消息的最可能來源。
最重要的是,您似乎正在嘗試使用“ cat”命令進行操作。 “ cat”命令(以這種形式)讀取文件的內容並將其寫入標准輸出。
簡而言之,“ cat”在這里完全沒有必要。 您只需要目錄的路徑名 。 因此,第一行的正確格式為:
myjava=c/program\ files\ \(x86\)/java/jre7
或使用引號:
myjava="c/program files (x86)/java/jre7"
要么
myjava='c/program files (x86)/java/jre7'
三種報價都具有相同的作用。 它們導致將“ =”之后的內容解析為單個<word>
。 (三種引用樣式在行為上有所不同,但在這里並不重要。)
第二行實際上接近需要的行。 你寫了:
export JAVA_HOME=myjava
意味着將JAVA_HOME設置為文字字符串“ myjava” ...並將其導出。 但是您想使用名為“ myjava”的shell變量的值。 那是:
export JAVA_HOME=$myjava
“ $ myjava”說“對變量'myjava'的值進行插值” ...參見上文。
@BMargulies答案將兩行合並為on,並刪除了(不必要的)局部變量“ myjava”。 我也是那樣做的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.