ホームページ  >  記事  >  Java  >  外部ライブラリを使用して JAR ファイルを実行し、「java.lang.ClassNotFoundException」を回避する方法

外部ライブラリを使用して JAR ファイルを実行し、「java.lang.ClassNotFoundException」を回避する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-03 20:45:03218ブラウズ

How to Run a JAR File with External Libraries and Avoid

拡張クラスパス オプションを使用して "java -jar MyFile.jar" を呼び出す

外部ライブラリを組み込んでコンパイルされた JAR ファイルを実行しようとするとき「java.lang.ClassNotFoundException」が発生する場合は、Java 実行プロセスの背後にある基礎を理解することが重要です。

Java には、クラスパスを指定するための 2 つのオプションがあります。

  • -jar: JAR が含まれます。ファイルとそのマニフェスト定義のクラスパス。
  • -cp: すべての依存関係を含む完全なクラスパスを手動で指定します。

間違った使用法

-jar と -cp の両方を同時に結合しようとすると正しくなく、前述のエラーが発生します。

解決策

この問題を解決するには、2 つの有効なアプローチがあります。

1.マニフェスト定義のクラスパス:

  • 必要なクラスパスを指定する JAR 内にマニフェスト ファイルを作成します。
  • java -jar を使用して JAR を実行します。これにより、指定されたクラスパスが自動的にロードされます。依存関係。

2.明示的なクラスパス:

  • メイン JAR とすべての外部 JAR を含む完全なクラスパスを定義するには、java -cp を使用します。
  • コマンド ラインでメイン クラスを明示的に指定します。

例:

java -cp 'MyProgram.jar:libs/*' main.Main

注: dir/* 構文は、指定されたディレクトリからすべての JAR ファイルをclasspath.

追加のヒント:

  • マニフェスト定義のアプローチの場合は、Ant の を使用します。 JAR をビルドする前に、必要なクラスパスを持つマニフェスト ファイルを動的に生成するタスクです。
  • -jar オプションの方が便利な場合は、すべての依存関係が JAR のマニフェストに含まれていることを確認してください。

以上が外部ライブラリを使用して JAR ファイルを実行し、「java.lang.ClassNotFoundException」を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。