Java プログラミングと Linux 環境は初めてです。また、クラスパスとは何か、JVM がクラスを見つける方法、JAVA API など、いくつかのことを理解するのが難しいと感じています。
たとえば、今日、1)employee と 2)employeetest という 2 つの単純なクラスを作成し、それらを同じフォルダーに配置しました。(employeetest には「main」メソッドがあり、コードで employee を使用します。) employeetest をコンパイルし、「javac」コマンドを使用して実行しました。、employee.classもフォルダーに追加されていることがわかりました。これは、JVM が実行に必要なすべてのファイルを自動的にコンパイルするということでしょうか?
次に、従業員クラスを現在のディレクトリの外に配置し、employeetest を実行しようとしました。についてエラーが発生しましたClassNotFound
!! なぜそうなのですか?JVM が他のディレクトリで従業員クラスを検索しなかったのはなぜですか?
従業員を配置したディレクトリは、Linuxのクラスパスまたは「PATH」にもありますか? 技術的には、PATHにある他のディレクトリも検索する必要がありますか?
私が間違っている場合は訂正してください。インターネットで非常に多くのことを読んでいるため、これらの概念を明確に理解することができませんか?
SO JVM はどこでクラスを検索しますか? 「メイン」のクラスが配置されているのと同じディレクトリにありますか?
私のマシンでは、エコーをして$JAVA_HOME
も何も印刷されません。しかし、それでも私のコマンドjava
とjavac
コマンドは正しく実行されますか? なぜそうなのですか?とはどういう意味$JAVA_HOME
ですか? JDKはどこにありますか? その機能は何ですか?