よくある質問ですが、他のすべての回答を読んで解決策を見つけることができませんでした。私はJavaクラスパスを理解しようとしていますが、外部ライブラリを指定しようとするとError: Could not find or load main class Hello
が実行されます。言われます。これは、コンパイルし、うまく動作しますJava:エラー:外部ライブラリをインポートしようとしたときにメインクラスHelloを見つけられないか読み込めませんでした
import java.util.*;
public class Hello {
public static void main(String[] args) {
Date date = new Date();
System.out.println("Hello world");
}
}
...
[user ~]> ls -l
Hello.java
[user ~]> javac Hello.java
[user ~]> ls -l
Hello.java
Hello.class
[user ~]> java Hello
Hello world
...:
私は私のホームディレクトリに直接置かれ、この単純なプログラム、使用を開始classpath環境変数が正しく設定されている(java.utilパッケージが見つかるため)。
私は-classpath
にランダムなサードパーティのパッケージをインポートし、その場所を指定しようとすると、しかし、私はエラーを取得する:
[user ~]> cat Hello.java
import java.util.*;
import org.apache.commons.lang3.time.*;
public class Hello {
public static void main(String[] args) {
StopWatch sw = new StopWatch();
Date date = new Date();
System.out.println("Hello world");
}
}
[user ~]> ls .m2/repository/org/apache/commons/commons-lang3/3.3.1
commons-lang3-3.3.1.jar
[user ~]> javac -classpath ~/.m2/repository/org/apache/commons/commons-lang3/3.3.1/commons-lang3-3.3.1.jar Hello.java
[user ~]> java -classpath ~/.m2/repository/org/apache/commons/commons-lang3/3.3.1/commons-lang3-3.3.1.jar Hello
Error: Could not find or load main class Hello
は、誰かが私に私がここで間違ってやってアイデアを与えるだろうか?
明示的にクラスパスを定義していない場合、コンパイラは現在のフォルダを検索します。外部JARのクラスパスを定義したときに、コンパイラがどこにあるかを知らせることにしましたが、現在のディレクトリは無視されました。 –