为什么JAVA编译的class文件不能运行,只有在“.class”前面加一个空格才可以运行

问题:为什么JAVA编译的class文件不能运行,只有在“.class”前面加一个空格才可以运行??那位大佬可以解答一下。这样会不会有影响???

系统:win10;Java版本:15.0.1

  • 代码如下:
class  HelloWorld{

    public static void main(String[] args)  
    {
        System.out.println("Hello,World!");
    }
}
  • 安装JAVA的路径与设置的环境路径:

 

 

 

  • 没加空格运行class文件:

  • 加了空格运行的结果:

 

如上所见,只有在“.class”文件前面加一个空格才可以运行。求助大佬解决一下。

你把class 的名字改为 Test 试试看?

是不是文件名有空格

这是java的帮助文档,可以看到java命令的用法是“java [-可选选项] 类名 [可选命令行参数]”

你第一次运行实际上是java会把HelloWorld.class当做类名,自然无法运行。

你第二次运行实际上是正确的方式“java HelloWorld”加上了把.class赋值为main函数中参数String数组的args的第一个元素。

javac  HelloWorld.java  --生成HelloWorld.class文件

java HelloWorld --不要加.class后缀,会自动加载的