在命令提示符下运行Java程序

4

- 背景信息:

我最近开始学习Java编程语言的基础知识。为了在命令提示符下运行我的程序,我下载了Java开发工具包(也称为JDK),并将我的Windows 10系统路径设置为:

C:\Program Files\Java\jdk-9.0.1\bin;C:\Program Files\Java\jre-9.0.1\bin

- 问题:

在使用以下格式编写简单的Hello World程序后:

    class test{

        public static void main(String[] args){

            System.out.println("Hello World!");
        }
    }

在命令提示符中使用以下命令进行编译:

javac test.java

然后输入以下命令:

java test

如果输出以下内容:

Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)

说明程序出现了问题。您可以尝试在在线Java编译器上编译您的简单程序,看是否能正常运行。

- 编辑:

有人建议使用Java反编译器。您可以尝试使用http://www.javadecompilers.com/result来反编译您的代码。

    import java.io.PrintStream;

      public class test { 
          public test() {} public void main(String[] paramArrayOfString) { 
               System.out.println("Hello World!"); 
          }
      }

- 问题:

问题的根源在哪里?我该如何修复它?


1
你尝试过指定类路径吗? - mustaccio
1
你尝试过在Java反编译器中打开.class文件吗?在那个版本中,main之前还有static吗? - Silvio Mayolo
3
尝试将你的类定义为public。 - Santosh
1
关闭你的CMD窗口,然后重新打开。我认为自从设置了Path变量以后,你没有重新启动它。 - Vishnu T S
2
我建议您保存程序并重新编译。 - Vishnu T S
显示剩余13条评论
1个回答

0

解决方案:

我在写和保存test.java程序时使用的是"Sublime Text 3"。@ Silvio Mayolo建议使用java反编译器来查找问题,我注意到,在Sublime中保存程序时,test.java文件中的静态内容出现了一些问题。 然后我执行了以下步骤:

  1. 我关闭了sublime text 3
  2. 我使用记事本打开了我的test.java文件。 我意识到static在public之后丢失了,所以它是public void main(String args){}。
  3. 我在记事本中添加了static,这样它就变成了public static void main(String[] args){}
  4. 我再次在记事本中保存了文件。
  5. 我在命令提示符中运行javac test.java,然后运行java test,我得到了我的Hello World输出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接