命令行编程

时间:2015-02-11 05:15:17

标签: java linux command-line

我正在使用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

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

  ls 

在目录上显示,

  test.java    test.class

原因可能是什么?

  java test

说,

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

3 个答案:

答案 0 :(得分:2)

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

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

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

java test.test

答案 1 :(得分:1)

  1. 您的.java个文件应存储在test目录(test/test.java
  2. 如果您使用javac test.java,请确保在执行cd ..之前将目录更改为父目录(java test.test),因为Java将在test.class中查找test {{1}}目录(或包)
  3. 详细了解Lesson: Packages了解更多详情。

    您可能希望阅读Code Conventions for the Java TM Programming Language,这样可以让人们更轻松地阅读您的代码并让您阅读其他代码

答案 2 :(得分:0)

以下是我为简单的java程序所做的事情:

  1. package xxx;

  2. 确保主要类的名称为Test - 首字母大写