命令行编程

Commandline programming

我正在使用 RHEL。我只是 运行 正在使用以下程序在我的控制台中打印一行,

   package test;

   public class test
   { 
     public static void main(String a[])
     {
       System.out.println("hi");  
     }
   }

我编译它使用,

   javac test.java

我试过运行,

  java test.test

它说,

could not load or find main class

我在 class 文件所在的目录中。

  ls 

目录上显示,

  test.java    test.class

可能是什么原因?

  java test

说,

  Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: test/test)

javaclass 名称(包括包)作为参数,而不是文件名。

此外,class test.test 必须存储在当前目录的 test/test.class - 而不是 中的 test.class 中。

您应该在名为 test 的文件夹中包含 test.class;转到 外部文件夹 (包含 test 的文件夹)和 运行:

java test.test

这是我为一个简单的 java 程序所做的:

  1. 没有package xxx;

  2. 确保 main class 的名称是 Test - 首字母大写

  1. 您的 .java 文件应存储在 test 目录中 (test/test.java)
  2. 如果您正在使用 javac test.java,请确保在执行 java test.test 之前将目录更改为父目录 (cd ..),因为 Java 将查找test.classtest 目录(或包)

仔细查看 Lesson: Packages 了解更多详情。

您可能希望通读 Code Conventions for the Java TM Programming Language,这将使人们更容易阅读您的代码,您也可以更轻松地阅读其他人