簡體   English   中英

'C:\\Program' 無法識別錯誤

[英]'C:\Program' is not recognized error

我最近嘗試更改我的環境變量以設置 javac.exe 的路徑(除其他外)。 它工作正常,直到突然間,我開始收到此錯誤。 例如,我聲明了一個 JAVA_HOME 變量為

C:\\Program Files\\Java\\jdk1.7.0_25

之后,我添加

%JAVA_HOME%\\bin

到 PATH 變量,但這給了我一個錯誤:

'C:\\Program' 不是內部或外部命令,也不是可操作的命令或批處理文件。

這個錯誤使它看起來像是遇到了“程序文件”中的空間問題。 不過,這很奇怪,因為它已經有一段時間沒有這樣做了,然后就開始了。 此外,還有其他帶有空格的變量可以正常工作。 我試過刪除變量並重新創建它,在 JAVA_HOME 周圍加上引號(它轉到正確的路徑,但沒有正確找到 javac.exe)。

關於我可以做什么的任何提示?

這是在 Windows 7 上。

編輯:

通過轉到控制面板 > 高級系統設置 > 環境變量來設置環境變量。 通過通過資源管理器窗口復制我想要的文件夾的地址來設置變量的值。 我通過在前面的變量和末尾的分號之間附加一個空格來將它添加到 PATH 環境變量中,如下所示:

C:\\Users\\Demo_User_1\\AppData\\Roaming\\npm; %JAVA_HOME%

其中 JAVA_HOME 變量定義如下:

C:\\Program Files\\Java\\jdk1.7.0_25

我通過命令提示符輸入 %JAVA_HOME% 來測試變量的值,這就是我得到“'C:\\Program' 無法識別...”的結果錯誤的地方

'set'的結果如下:

C:\Users\Demo_User_1>set
ALLUSERSPROFILE=C:\ProgramData
ANDROID_HOME=C:\Users\Demo_User_1\Desktop\Android\adt-bundle-windows-x86_64-2013
0717\sdk
APPDATA=C:\Users\Demo_User_1\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DEMO_USER_1-HP
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Demo_User_1
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_25
LOCALAPPDATA=C:\Users\Demo_User_1\AppData\Local
LOGONSERVER=\\DEMO_USER_1-HP
NUMBER_OF_PROCESSORS=4
OnlineServices=Online Services
OS=Windows_NT
Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Clien
t\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files
(x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;
C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program
Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\
x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\I
ntel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Managem
ent Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engin
e Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Compone
nts\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\Wir
elessCommon\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files
 (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows
Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\
Tools\Binn\;C:\Program Files\nodejs\; C:\Users\Demo_User_1\Desktop\Android\adt-b
undle-windows-x86_64-20130717\sdk/platform-tools; C:\Users\Demo_User_1\Desktop\A
ndroid\adt-bundle-windows-x86_64-20130717\sdk\tools; %JAVA_HOME%; %ANT_HOME%/bin
; C:\Program Files\Java\jdk1.7.0_25\bin; C:\Users\Demo_User_1\AppData\Roaming\np
m; "%JAVA_HOME%"; ;C:\Users\Demo_User_1\Desktop\Android\adt-bundle-windows-x86_6
4-20130717\sdk/tools; C:\Users\Demo_User_1\Desktop\Android\adt-bundle-windows-x8
6_64-20130717\sdk/platform-tools
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PCBRAND=Pavilion
Platform=MCD
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=3a09
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\DEMO_U~1\AppData\Local\Temp
TMP=C:\Users\DEMO_U~1\AppData\Local\Temp
USERDOMAIN=Demo_User_1-HP
USERNAME=Demo_User_1
USERPROFILE=C:\Users\Demo_User_1
VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools
\
windir=C:\Windows
windows_tracing_flags=3
windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log

另一個解決方案是這樣做: C:\\Program Files has a short name

C:\\程序~1

在窗戶里。

所以只需編寫 Progra~1 而不是 Program Files。 {添加缺少的'r'}

好的,這樣就更清楚了。

這里有兩個主要問題。

首先, 'C:\\Program' is not recognized...您收到'C:\\Program' is not recognized...的原因'C:\\Program' is not recognized...當然是因為它包含空格。 您在 PATH 環境變量中引用它這一事實與在提示符下解釋%JAVA_HOME% 的方式無關。 你有兩個選擇。

  1. 定義變量時引用,即設置JAVA_HOME"C:\\Program Files\\Java\\jdk1.7.0_25"
  2. 當你調用它時引用它。 在提示符下鍵入"%JAVA_HOME%\\bin" 當然,除非您以可執行文件(例如"%JAVA_HOME%\\bin\\javac.exe" )結束路徑,否則您會收到“未識別為內部或外部命令、可運行的程序或批處理文件”錯誤,但是您'會看到它以這種方式抱怨'"C:\\Program Files\\Java\\jdk1.7.0_25"'而不是'C:\\Program'

其次,不能在路徑中使用環境變量。 在命令提示符下設置路徑時可以使用環境變量。 例如,

set PATH=%PATH%;%JAVA_HOME%

會起作用,但那是因為%JAVA_HOME%在命令行中展開並且PATH設置為結果。 如果您檢查PATH的值,您會看到它以C:\\Program Files\\Java\\jdk1.7.0_25 結尾,而不是%JAVA_HOME%

此外,如果javac.exe位於bin子目錄中,則需要將其包含在路徑中,即將;C:\\Program Files\\Java\\jdk1.7.0_25\\bin到路徑中。

(順便說一句,您在路徑中有兩次%JAVA_HOME% ,並且在第二次之后有一個額外的分號。)

您在用戶變量或系統變量中設置 JAVA_HOME 環境變量的路徑是? 您不能在系統變量中使用用戶變量。 因此,如果 JAVA_HOME 被定義為用戶變量並且您將其添加到您的系統路徑中,則該路徑將不起作用。

從 set 命令的輸出看來 %JAVA_HOME% 沒有得到解決。 它應該顯示擴展版本而不是帶有 % 登錄的版本。

添加 Path 用戶變量並將 %JAVA_HOME%\\bin 添加到其中。 Windows 會將您的用戶路徑添加到系統路徑的末尾。

JAVA_HOME 變量中不需要引號,即使它包含空格。

盡管 Adi Inbar 對這個問題非常清楚,但我認為他的解決方法不是最好的解決方案,因為它試圖解決原始問題:JDK 安裝路徑中的空格。

解決問題的最佳方法實際上是將 JDK 重新安裝到無空間的路徑。 從長遠來看,所有其他解決方法都會讓您頭疼。

只需在添加位置之前添加 cd 例如:而不是

C:\\Program Files\\Java\\jdk1.7.0_25

采用

cd C:\\Program Files\\Java\\jdk1.7.0_25

這對我有幫助。

很明顯,這是由空格引起的。 只需在短語 it foldername 中添加引號,其中包含一個空格 C:\\"Program Files"\\Java\\jdk1.7.0_25

如果您使用的是 Windows 10,請使用瀏覽文件夾而不是編輯文本。 我遇到了類似的問題,使用上述方法解決了這個問題。

希望這可以幫助!

在此處輸入圖片說明

重新安裝 Java 並將其安裝目錄從 C:\\Program Files\\Java\\jdk 更改為 C:\\Java\\jdk 中的某個位置。 避免在安裝中使用 Program Files 文件夾,因為“Program”和“Files”之間的空間會產生問題。

謝謝!!

暫無
暫無

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

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