我试着用 javac 使用windows命令提示符,但它不起作用。添加目录后 "C:\Program Files\Java\jdk1.6.0_16\bin\" 到最后 PATH 环境变量 java 命令工作正常,但使用 javac 显示以下错误:“javac”不能识别为内部或外部命令、可操作程序或批处理文件。
javac
"C:\Program Files\Java\jdk1.6.0_16\bin\"
PATH
java
cx6n0qe31#
windows os在当前目录和path环境变量中列出的目录中搜索可执行程序。jdk的程序(如java编译器javac.exe和java运行时java.exe)位于目录“\bin”(其中表示jdk安装的目录,例如c:\program files\java\jdk1.8.0\U xx)。您需要在路径中包含“\bin”目录。在windows xp/vista/7/8中编辑path环境变量:控制面板⇒ 系统⇒ 高级系统设置切换到“高级”选项卡⇒ 环境变量在“系统变量”中,向下滚动选择“路径”⇒ 编辑((在继续之前,请阅读以下3次,没有撤消操作))在“variable value”字段中,插入“c:\program files\java\jdk1.8.0\u xx\bin”(用升级号替换xx,并验证这是jdk的二进制目录!!!)在所有现有目录前面,后跟分号(;)它将jdk的二进制目录与其他现有目录分开。不要删除任何现有条目;否则,某些现有应用程序可能无法运行。
Variable name : PATH Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]
rvpgvaaj2#
我必须这样做才能在Windows764上运行。打开命令提示符(cmd.exe)并键入:
set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin
确保重新打开所有正在运行的命令提示符窗口以更新环境变量。
ws51t4hk3#
将其命名为“c:\program files\java\jdk1.6.0\u 16\bin”。去掉反斜杠就行了
hgtggwj04#
确保path变量中的路径之间不允许有空格(空白)。我的问题是我有空白,我相信windows把它当作一个null,没有读取java的路径。
luaexgnf5#
当我试图将.java转换为.class时,javac命令不起作用。我通过进入c:\ProgramFiles(x86)\java\jdk1.7.0\u04\bin来运行它,当我在那个目录上时,我键入javac.exe c\test\test.java,它用这个策略创建了这个类。试试看。
eimct9ow6#
更改文件夹“jdk1.7.0\u 45”“jdk1\u 7\u 0\u 60”并在windows环境中更新路径。否则,路径会忽略前面代表隐藏文件的点,因此文件夹不会显示在路径字符串中。
gijlo24d7#
我有同样的问题张贴在这个标题。java可以工作,但是 javac 无法在windows命令提示符中( cmd.exe ).对我来说,我只是在添加时放置了一个空格 C:\Program Files\Java\jdk1.8.0\bin 直到我生命的尽头 %PATH% 环境变量。移除 ; 以及下一个文件路径。
cmd.exe
C:\Program Files\Java\jdk1.8.0\bin
%PATH%
;
gc0ot86w8#
将仅为管理员帐户设置路径。因此,如果您还没有启动命令提示符,那么以管理员身份启动命令提示符是很重要的。
dxxyhpgq9#
";c:\program files\java\jdk1.6.0\bin“有时您可能会忘记在最后一个现有路径上加分号。
iezvtpos10#
在谷歌搜索了很久之后,我才知道javac.exe将在jdk(c:\program files\java\jdk(version number)\bin)中,而不是在jre(c:\program files(x86)\java\jre7\bin)中。它(jre)只是一个java运行时环境。为了使用编译器javac,您需要的是java开发工具包如果您将bin指向jre内部,javac将不起作用为了在cmd中使用javac,必须在系统中安装jdk。。。对于javac路径路径=c:\ProgramFiles(x86)\java\jre7\bin这是错误的path=c:\program files\java\jdk(版本号)\bin这是正确的确保“javac.exe”在“c:\program files\java\jdk(版本号)\bin”中不要混淆jre和jdk两者是完全不同的如果你没有jdk请从这个链接下载https://jdk.java.net/或http://www.oracle.com/technetwork/java/javase/downloads/index.htmljdk和jre的参考线程jdk和jre有什么区别?
u0sqgete11#
我遇到了完全相同的问题,java可以工作,但javac不能在Windows8的cmd提示符下工作。出现问题是因为我忘了删除 '>' 在路径名的末尾,例如:
'>'
C:\Program Files\Java\jdk*\bin>
假设是这样的:
C:\Program Files\Java\jdk*\bin
wnvonmuf12#
我知道这可能不是您的特定错误,但我曾经在我的路径中有一个前导空格,java可以工作,但javac不能。至于它的价值,我提出了一个明智的建议:“仔细审视你的道路”。
jucafojl13#
我很感激这是一个老问题,但我的解决方案不是一个答案,所以张贴在这里,以防其他人尝试所有其他的。在我的例子中,以前安装的javajre(在programdata/oracle/java中)在路径变量列表的顶部有一个路径变量。“oracle”路径的内容有java.exe,但没有javac.exe。我将完整的jdk路径添加到路径变量列表的顶部,在“oracle”变量之前,然后它选择javac.exe和java。
wtzytmuj14#
好吧,这不可能总是这样,但我们中的许多人在过去都犯过这个错误,其中很少有人还没有意识到这一点,也就是说,每次你为任何环境变量添加一个路径(任何路径),你很可能会在“分号”之后点击空格键(就像你在编辑器中键入时通常会在“句点”之后)。这将在路径中创建一个前导空格,例如“c:\program files\java\jdk1.6.0\bin”,因此系统将找不到“javac.exe”。
2wnc66cl15#
如果在命令提示符打开时将其添加到控制面板中,则不会影响当前的命令提示符。您需要退出并重新打开,或者只需执行以下操作:
set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"
通过检查,执行:
echo %path%
从您的命令提示符,让我们知道它是什么。否则,请确保该目录中有javac,方法是:
"c:\program files\java\jdk1.6.0_16\bin\javac.exe"
从命令提示符。您还可以判断哪个可执行文件(如果有)正在与命令一起使用:
for %i in (javac.exe) do @echo %~$PATH:i
这是一个类似于 which 和/或 whence 某些unix类型操作系统中的命令。
which
whence
17条答案
按热度按时间cx6n0qe31#
windows os在当前目录和path环境变量中列出的目录中搜索可执行程序。jdk的程序(如java编译器javac.exe和java运行时java.exe)位于目录“\bin”(其中表示jdk安装的目录,例如c:\program files\java\jdk1.8.0\U xx)。您需要在路径中包含“\bin”目录。
在windows xp/vista/7/8中编辑path环境变量:
控制面板⇒ 系统⇒ 高级系统设置
切换到“高级”选项卡⇒ 环境变量
在“系统变量”中,向下滚动选择“路径”⇒ 编辑
((在继续之前,请阅读以下3次,没有撤消操作))
在“variable value”字段中,插入“c:\program files\java\jdk1.8.0\u xx\bin”(用升级号替换xx,并验证这是jdk的二进制目录!!!)在所有现有目录前面,后跟分号(;)它将jdk的二进制目录与其他现有目录分开。不要删除任何现有条目;否则,某些现有应用程序可能无法运行。
rvpgvaaj2#
我必须这样做才能在Windows764上运行。
打开命令提示符(cmd.exe)并键入:
确保重新打开所有正在运行的命令提示符窗口以更新环境变量。
ws51t4hk3#
将其命名为“c:\program files\java\jdk1.6.0\u 16\bin”。去掉反斜杠就行了
hgtggwj04#
确保path变量中的路径之间不允许有空格(空白)。我的问题是我有空白,我相信windows把它当作一个null,没有读取java的路径。
luaexgnf5#
当我试图将.java转换为.class时,javac命令不起作用。我通过进入c:\ProgramFiles(x86)\java\jdk1.7.0\u04\bin来运行它,当我在那个目录上时,我键入javac.exe c\test\test.java,它用这个策略创建了这个类。试试看。
eimct9ow6#
更改文件夹“jdk1.7.0\u 45”“jdk1\u 7\u 0\u 60”并在windows环境中更新路径。否则,路径会忽略前面代表隐藏文件的点,因此文件夹不会显示在路径字符串中。
gijlo24d7#
我有同样的问题张贴在这个标题。java可以工作,但是
javac
无法在windows命令提示符中(cmd.exe
).对我来说,我只是在添加时放置了一个空格
C:\Program Files\Java\jdk1.8.0\bin
直到我生命的尽头%PATH%
环境变量。移除
;
以及下一个文件路径。gc0ot86w8#
将仅为管理员帐户设置路径。因此,如果您还没有启动命令提示符,那么以管理员身份启动命令提示符是很重要的。
dxxyhpgq9#
";c:\program files\java\jdk1.6.0\bin“有时您可能会忘记在最后一个现有路径上加分号。
iezvtpos10#
在谷歌搜索了很久之后,我才知道javac.exe将在jdk(c:\program files\java\jdk(version number)\bin)中,而不是在jre(c:\program files(x86)\java\jre7\bin)中。它(jre)只是一个java运行时环境。为了使用编译器javac,您需要的是java开发工具包
如果您将bin指向jre内部,javac将不起作用
为了在cmd中使用javac,必须在系统中安装jdk。。。
对于javac路径
路径=c:\ProgramFiles(x86)\java\jre7\bin这是错误的
path=c:\program files\java\jdk(版本号)\bin这是正确的
确保“javac.exe”在“c:\program files\java\jdk(版本号)\bin”中
不要混淆jre和jdk两者是完全不同的
如果你没有jdk请从这个链接下载
https://jdk.java.net/
或
http://www.oracle.com/technetwork/java/javase/downloads/index.html
jdk和jre的参考线程jdk和jre有什么区别?
u0sqgete11#
我遇到了完全相同的问题,java可以工作,但javac不能在Windows8的cmd提示符下工作。
出现问题是因为我忘了删除
'>'
在路径名的末尾,例如:假设是这样的:
wnvonmuf12#
我知道这可能不是您的特定错误,但我曾经在我的路径中有一个前导空格,java可以工作,但javac不能。
至于它的价值,我提出了一个明智的建议:“仔细审视你的道路”。
jucafojl13#
我很感激这是一个老问题,但我的解决方案不是一个答案,所以张贴在这里,以防其他人尝试所有其他的。
在我的例子中,以前安装的javajre(在programdata/oracle/java中)在路径变量列表的顶部有一个路径变量。“oracle”路径的内容有java.exe,但没有javac.exe。我将完整的jdk路径添加到路径变量列表的顶部,在“oracle”变量之前,然后它选择javac.exe和java。
wtzytmuj14#
好吧,这不可能总是这样,但我们中的许多人在过去都犯过这个错误,其中很少有人还没有意识到这一点,也就是说,每次你为任何环境变量添加一个路径(任何路径),你很可能会在“分号”之后点击空格键(就像你在编辑器中键入时通常会在“句点”之后)。
这将在路径中创建一个前导空格,例如“c:\program files\java\jdk1.6.0\bin”,因此系统将找不到“javac.exe”。
2wnc66cl15#
如果在命令提示符打开时将其添加到控制面板中,则不会影响当前的命令提示符。您需要退出并重新打开,或者只需执行以下操作:
通过检查,执行:
从您的命令提示符,让我们知道它是什么。
否则,请确保该目录中有javac,方法是:
从命令提示符。您还可以判断哪个可执行文件(如果有)正在与命令一起使用:
这是一个类似于
which
和/或whence
某些unix类型操作系统中的命令。