javac能够找到文件,但不能找到java命令

javac能够找到文件,但不能找到java命令,java,Java,例如: 如果c:\xyz\javaprograms\HelloWorld.java 在以下默认目录的命令提示符中: c:\users\username>javac:\xyz\javaprograms\HelloWorld.java 它将编译并创建一个c:\xyz\javaprograms\HelloWorld.class 现在,如果我尝试执行该程序: c:\users\username>javac:\xyz\javaprograms\HelloWorld 它说它没有找到那个文件名 如果我转到文件

例如: 如果
c:\xyz\javaprograms\HelloWorld.java

在以下默认目录的命令提示符中:

c:\users\username>javac:\xyz\javaprograms\HelloWorld.java

它将编译并创建一个
c:\xyz\javaprograms\HelloWorld.class

现在,如果我尝试执行该程序:
c:\users\username>javac:\xyz\javaprograms\HelloWorld

它说它没有找到那个文件名

如果我转到文件路径并执行HelloWorld程序(字节码),那么它运行良好

c:\xyz\javaprograms>java HelloWorld

为什么java命令不能识别具有完整文件路径的文件,为什么它只有在进入文件所在的实际目录后才能识别该文件?

您没有将文件名传递给
java
命令-您只传递一个类名,而类加载器必须知道如何加载具有该名称的类

当您在正确的目录中时,它就起作用了,因为当前目录隐式地位于类路径上,但您不必这样做:

c:\users\username>java -cp c:\xyz\javaprograms HelloWorld
应该也能正常工作。

您不需要将文件名传递给
java
命令,只需传递一个类名,类加载器必须知道如何加载具有该名称的类

当您在正确的目录中时,它就起作用了,因为当前目录隐式地位于类路径上,但您不必这样做:

c:\users\username>java -cp c:\xyz\javaprograms HelloWorld
应该也很好。

@Start1 很久以前我就遇到过这种情况。请将java路径添加到windows
path
环境变量中

  • 转到桌面
  • 右键单击“我的电脑”图标
  • 单击高级选项卡
  • 单击环境变量按钮
  • 在用户环境中找到创建路径,或在系统环境中找到路径(但在这里要小心)
  • 在此处添加java bin路径完整路径。I使用系统环境确保您一直走到行的末尾,在此处使用分号作为分隔符
    然后附加java路径
  • 确保您的cp(类路径)是没有类扩展名的实际cp
我希望这对Start1有所帮助 很久以前我就遇到过这种情况。请将java路径添加到windows
path
环境变量中

  • 转到桌面
  • 右键单击“我的电脑”图标
  • 单击高级选项卡
  • 单击环境变量按钮
  • 在用户环境中找到创建路径,或在系统环境中找到路径(但在这里要小心)
  • 在此处添加java bin路径完整路径。I使用系统环境确保您一直走到行的末尾,在此处使用分号作为分隔符
    然后附加java路径
  • 确保您的cp(类路径)是没有类扩展名的实际cp

我希望这有助于

您需要使用-cp设置类路径:

 Java -cp MainFolderPath   mainclass
您可以在此处找到完整的文档:

您需要使用-cp设置类路径:

 Java -cp MainFolderPath   mainclass
您可以在此处找到完整的文档: