Java 命令行编程

Java 命令行编程,java,linux,command-line,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 mai

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

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

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

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


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

  • 包装xxx

  • 确保主类的名称为
    Test
    -首字母大写

  • 您的
    .java
    文件应存储在
    test
    目录中(
    test/test.java
  • 如果您使用的是
    javac test.java
    ,请确保在执行
    java test.test
    之前将目录更改为父目录(
    cd..
    ),因为java将在
    test
    目录(或包)中查找
    test.class
  • 请仔细查看以了解更多详细信息



    您可能希望进行通读,这将使人们更容易阅读您的代码,您也更容易阅读他人的代码。
    测试不应该编译失败吗?您在方法或
    静态
    块上下文之外调用功能。2.您不需要一个
    公共静态voidmain(String[]args){…}
    方法吗?天哪,我打错了,我改正了。对于包测试,任何其他ReasonTest.class必须位于名为test的文件夹中。。很明显!!!!!!!!java test.test表示找不到类。@GopsAB运行该命令时,您的文件夹结构是什么?当前目录是什么?我位于CDH目录中,其中存在.java和.class文件。我在同一个目录中尝试了从写入文件到运行的所有命令it@GopsAB您必须将
    test.java
    文件存储在
    test
    目录中。您可以更改到
    test
    目录,并使用
    javac test.java
    编译
    test.java
    ,但必须更改到父目录(在
    test
    目录上方)为了运行它。不建议将类存储在默认包中,因为这样会使其无法评估。@MadProgrammer不建议将其仅用于复杂到可以拆分为多个包的程序。@immibis,如果您不希望任何东西加载这些类;)@MadProgrammer您可以通过反射或字节码操作从默认包加载类。@immibis Oh flippen joy,因此我们没有做正确的事情,而是对其进行了破解…什么部分?您是否将
    .java
    放在正确的目录中?您是否从顶级包的父目录执行类文件?我本以为解释答案细节的要求会有所帮助……3分钟后我会接受的。请让我知道投反对票的原因。我会在报告中更正它future@GopsAB我不确定答案是否会被否决,有些人对“简单”的错误非常挑剔,特别是当这些错误可以通过使用适当的教程来解决,或者如果这个问题经常被问到(是的,这个问题一个月只问几次),如果我有org.myorg作为我的软件包,然后test.java应该位于org/myorg/test.java中,test.class也必须位于同一目录中。然后我应该从org的父目录运行它。我明白了吗,伙计?@GopsAB是的,这是最基本的。
    表示类文件应位于的预期目录
      Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: test/test)
    
    java test.test