javac在windows命令提示符下不工作

disbfnqx  于 2021-06-30  发布在  Java
关注(0)|答案(17)|浏览(535)

我试着用 javac 使用windows命令提示符,但它不起作用。
添加目录后 "C:\Program Files\Java\jdk1.6.0_16\bin\" 到最后 PATH 环境变量 java 命令工作正常,但使用 javac 显示以下错误:
“javac”不能识别为内部或外部命令、可操作程序或批处理文件。

cx6n0qe3

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...]

rvpgvaaj

rvpgvaaj2#

我必须这样做才能在Windows764上运行。
打开命令提示符(cmd.exe)并键入:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

确保重新打开所有正在运行的命令提示符窗口以更新环境变量。

ws51t4hk

ws51t4hk3#

将其命名为“c:\program files\java\jdk1.6.0\u 16\bin”。去掉反斜杠就行了

hgtggwj0

hgtggwj04#

确保path变量中的路径之间不允许有空格(空白)。我的问题是我有空白,我相信windows把它当作一个null,没有读取java的路径。

luaexgnf

luaexgnf5#

当我试图将.java转换为.class时,javac命令不起作用。我通过进入c:\ProgramFiles(x86)\java\jdk1.7.0\u04\bin来运行它,当我在那个目录上时,我键入javac.exe c\test\test.java,它用这个策略创建了这个类。试试看。

eimct9ow

eimct9ow6#

更改文件夹“jdk1.7.0\u 45”“jdk1\u 7\u 0\u 60”并在windows环境中更新路径。否则,路径会忽略前面代表隐藏文件的点,因此文件夹不会显示在路径字符串中。

gijlo24d

gijlo24d7#

我有同样的问题张贴在这个标题。java可以工作,但是 javac 无法在windows命令提示符中( cmd.exe ).
对我来说,我只是在添加时放置了一个空格 C:\Program Files\Java\jdk1.8.0\bin 直到我生命的尽头 %PATH% 环境变量。
移除 ; 以及下一个文件路径。

gc0ot86w

gc0ot86w8#

将仅为管理员帐户设置路径。因此,如果您还没有启动命令提示符,那么以管理员身份启动命令提示符是很重要的。

dxxyhpgq

dxxyhpgq9#

";c:\program files\java\jdk1.6.0\bin“有时您可能会忘记在最后一个现有路径上加分号。

iezvtpos

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有什么区别?

u0sqgete

u0sqgete11#

我遇到了完全相同的问题,java可以工作,但javac不能在Windows8的cmd提示符下工作。
出现问题是因为我忘了删除 '>' 在路径名的末尾,例如:

C:\Program Files\Java\jdk*\bin>

假设是这样的:

C:\Program Files\Java\jdk*\bin
wnvonmuf

wnvonmuf12#

我知道这可能不是您的特定错误,但我曾经在我的路径中有一个前导空格,java可以工作,但javac不能。
至于它的价值,我提出了一个明智的建议:“仔细审视你的道路”。

jucafojl

jucafojl13#

我很感激这是一个老问题,但我的解决方案不是一个答案,所以张贴在这里,以防其他人尝试所有其他的。
在我的例子中,以前安装的javajre(在programdata/oracle/java中)在路径变量列表的顶部有一个路径变量。“oracle”路径的内容有java.exe,但没有javac.exe。我将完整的jdk路径添加到路径变量列表的顶部,在“oracle”变量之前,然后它选择javac.exe和java。

wtzytmuj

wtzytmuj14#

好吧,这不可能总是这样,但我们中的许多人在过去都犯过这个错误,其中很少有人还没有意识到这一点,也就是说,每次你为任何环境变量添加一个路径(任何路径),你很可能会在“分号”之后点击空格键(就像你在编辑器中键入时通常会在“句点”之后)。
这将在路径中创建一个前导空格,例如“c:\program files\java\jdk1.6.0\bin”,因此系统将找不到“javac.exe”。

2wnc66cl

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类型操作系统中的命令。

相关问题