Jarファイルでクラスを実行する


176

/ myfolderにと呼ばれるjarファイルがmyJar.jarあり、そこから呼び出されるクラスを使用する場合、コマンドラインからどのように実行しますか?myClass

私はそれがディレクトリに行って言うことだろうと思ったがjava -cp myJar.jar.myClass、それはうまくいっていない。任意の助けいただければ幸いです。


java -cp myJar.jar myClass私にとってはうまくいきます-コマンドラインにスペースではなく偽のピリオドがありますか?
クリス・ドッド

1
そのクラスを「使用したい」と言うとき、どういう意味ですか?特に呼び出す主なメソッドはありますか?
Marsellus Wallace、2011

回答:


256

を使用しjava -cp myjar.jar com.mypackage.myClassます。

  1. クラスがパッケージにない場合は、単純にjava -cp myjar.jar myClass

  2. myJar.jarが配置されているディレクトリ内にいない場合は、次の操作を実行できます。

    1. UnixまたはLinuxプラットフォームの場合:

      java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. Windowsの場合:

      java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass


10
それに追加するだけ-com.mypackage.myClass(上記の例の場合)が他のjarに依存している場合は、次のように実行します。 mypackage.myClass
akjain 2014

2
これが機能しない場合に注意する必要のある失敗の可能性のあるパス:クラスへの完全修飾パスがjarファイルの内容と正確に一致していることを確認してください。-l /location-of-jar/myjar.jarを解凍し、com / mypackage / myClass以外のものが表示される場合は、これが問題です。(たとえば、bin / com / mypackage / myClassが表示されている場合は、binにcdしてjarファイルをビルドする必要があります。これでは機能しません。)
Scott C Wilson

myClassではなくMyClassを使用する
Breno Inojosa 2016年

上記を試してみると、スレッド "main"でエラーException java.lang.NoClassDefFoundError:cucumber / api / cli / Main at com.company.project.demo.bdd.runner.Execute.main(Execute.java:20 )原因:java.lang.ClassNotFoundException:cucumber.api.cli.Main at java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher $ AppClassLoader。 loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 1つ以上
Vaibhav_Sharma


18

Javaで使用できるJARファイルには2つのタイプがあります。

  1. マニフェストファイルを含むRunnable / Executable jarファイル。Runnable jarを実行するには、java -jar fileName.jarまたはjava -jar -classpath abc.jar fileName.jar

  2. マニフェストファイルを含まない単純なjarファイルなので、パスを指定するだけでメインクラスを実行できます java -cp ./fileName.jar MainClass


6

あなたがmyJar.jarファイルがあるディレクトリにいmyClassて、public static void main()それにメソッドがあると仮定します:

次のコマンドラインを使用します。

java -cp ./myJar.jar myClass

どこ:

  1. myJar.jarある現在のパス、ノート.ほとんどのシステム上の現在のパスにありません。完全修飾パスは、ここにも好適です。

  2. myClassは、クラスへの完全修飾パッケージパスです。この例では、それmyClassデフォルトのパッケージにあると想定していますcom.mycompany.mycode.myClass


1

これはを実行する正しい方法.jarであり、その中の1つのクラスに.jar必要なものは何でもmain()、次はそのパラメータです。

java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.