java类路径和包问题

java类路径和包问题,java,Java,我在MyHelloWorld目录中有一个简单的MyHelloWorld.java文件。我通过导出~/.bashrc文件中的类路径=“[some Required class]”,将类路径设置为适当的目录。我仍然需要使用javac MyHelloWorld.jaca-cp“上面的类路径”来编译.java文件 这是我的第一个问题,既然已经指定了类路径,为什么我仍然需要通过使用-cp选项来显式设置类路径 编译文件后,我没有看到像MyHelloWorld这样的文件,但是java命令可以自动完成“java

我在MyHelloWorld目录中有一个简单的MyHelloWorld.java文件。我通过导出~/.bashrc文件中的类路径=“[some Required class]”,将类路径设置为适当的目录。我仍然需要使用javac MyHelloWorld.jaca-cp“上面的类路径”来编译.java文件

这是我的第一个问题,既然已经指定了类路径,为什么我仍然需要通过使用-cp选项来显式设置类路径

编译文件后,我没有看到像MyHelloWorld这样的文件,但是java命令可以自动完成“java MyHelloWorld”,而实际上目录中不存在名为MyHelloWorld的文件?(如果我键入“javamyh”,命令可以自动完成)

当我尝试执行“JavaMyHelloWorld”时,它提示我有NOClassDefFoundError,这是缺少库的指示器。然而,当我尝试执行“java-cpmyhello”时,该命令无法自行完成,这表明它根本找不到任何可执行文件

那么,出现上述令人困惑的迹象的原因是什么呢。任何人都可以从这里向我解释java如何处理类路径和包等。谢谢

请特别遵循以下步骤


“我在目录MyHelloWorld中有一个简单的MyHelloWorld.java文件”-类路径应该包含已编译的类。要在目录中生成.class文件,必须使用javac-d选项。@OliCharlesworth,很酷,但是为什么我已经在.bashrc文件中设置了类路径,还需要指定-cp选项呢?恐怕我不太理解您对问题的描述。但总而言之,将.java编译为.class,确保.class文件位于已知位置,将该已知位置添加到类路径,然后运行
java
@OliCharlesworth,简单地说,执行“导出类路径=[some needed files path]”与指定-cp选项的工作相同吗?