web-dev-qa-db-ja.com

バッチファイルから.jarを実行する

実行可能な.jarファイルを作成しました。クラスパスに言及せずにバッチファイルを使用して.jarを実行するにはどうすればよいですか?

42
Arivu2020

Windowsでは、次のコマンドを使用できます。

start javaw -jar JarFile.jar

これにより、コマンドプロンプトウィンドウが開いたままになりません。

52
Jleuleu

これには、.bat内のjarファイルのパスを指定する必要のない解決策があります。これは、.batファイルが常にjarと同じディレクトリにある限り、jarを変更せずにファイルシステム内で移動できることを意味します。 .batコードは次のとおりです。

Java -jar %~dp0myjarfile.jar %*

基本的に %0は.batのフルパスに展開され、%~dp0は、ファイル名を除く.batフルパスに展開されます。そう %~dp0myjarfile.jarは、.batファイルと同じ場所にあるmyjarfile.jarの絶対パスです。 %*は.batに与えられたすべての引数を取り、Javaプログラムに渡します。(参照: http://www.Microsoft.com/resources/documentation/ windows/xp/all/proddocs/en-us/percent.mspx?mfr = true

22
BrunoMedeiros

バッチファイルでjarファイルを実行する場合は、次の内容を含むrunjava.batという空のファイルを作成します。

Java -jar "C:\myjarfile.jar"
15
Jonno_FTW

次の内容の.bat拡張子を持つバッチファイルを作成できます

UIを持たず、コマンドラインアプリケーションである.jarにはJavaを使用します

@ECHO OFF
start Java -jar <your_jar_file_name>.jar

UIを持つ.jarにはjavawを使用します

@ECHO OFF
start javaw -jar <your_jar_file_name>.jar

Java_HOMEが環境変数に設定されていることを確認してください。

11
Nagarajan S R
cd "Your File Location without inverted commas"

例: cd C:\ Users *****\Desktop\directory\target

Java -jar myjar.jar

batファイルの例は次のようになります

@echo OFF
cd C:\Users\****\Desktop\directory\target
Java -jar myjar.jar

これは正常に機能します。

5
User123456

コマンドラインから.jarファイルを実行するには、次のコマンドを使用します。

Java -jar YourJar.jar

これをバッチファイルとして実行するには、コマンドをテキストファイルにコピーし、.batとして保存します。

@echo off
Java -jar YourJar.jar

@echo offは、2番目のコマンドが出力されないようにするだけです。

5
mdm

Windowsエクスプローラーで.jarファイルをダブルクリックして機能する場合、これを使用できるはずです。

start myapp.jar

バッチファイルで。

Windowsのstartコマンドは、背後でファイルをダブルクリックするのとまったく同じことを行います。

3
RichieHindle
Java -jar "C:\\myjarfile.jar"

"\\"をコマンドに追加する必要がある場合があります。これを試して!

2
Venkat

この質問に対する私の理解は、OPがコマンドラインでクラスパスを指定することを避けようとしているということです。これを行うには、マニフェストファイルにクラスパスを配置します。

マニフェストで:

Class-Path: Library.jar

このドキュメントには詳細が記載されています。

http://docs.Oracle.com/javase/tutorial/deployment/jar/downman.html

MANIFESTというマニフェストファイルを使用してjarを作成するには、次のコマンドを使用できます。

jar -cmf MANIFEST MyJar.jar <class files>

相対クラスパス(つまり、同じディレクトリ内の他のjar)を指定すると、jarを移動でき、mdmの回答に記載されているバッチファイルは引き続き機能します。

1
merlin2011

MANIFEST.MFファイルでクラスパスを指定していることを確認する必要があります。 Mavenを使用してパッケージ化を行う場合、次のプラグインを構成できます。

1。 maven-depedency-plugin:
2。 maven-jar-plugin:

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>${version.plugin.maven-dependency-plugin}</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                <overWriteReleases>false</overWriteReleases>
                <overWriteSnapshots>true</overWriteSnapshots>
                <includeScope>runtime</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>${version.plugin.maven-jar-plugin}</version>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
        </archive>
    </configuration>
</plugin>

結果のマニフェストファイルは、META-INFの下の実行可能jarにパッケージ化され、次のようになります。

Manifest-Version: 1.0
Implementation-Title: myexecjar
Implementation-Version: 1.0.0-SNAPSHOT
Built-By: razvanone
Class-Path: lib/first.jar lib/second.jar
Build-Jdk: your-buildjdk-version
Created-By: Maven Integration for Eclipse
Main-Class: ro.razvanone.MyMainClass

Windowsスクリプトは次のようになります。

@echo on
echo "Starting up the myexecjar application..."
Java -jar myexecjar-1.0.0-SNAPSHOT.jar

これは、Mavenを使用して実行可能jarを構築するための完全な構成です:)

1
razvanone

手順1-プロジェクトから実行可能なjarファイルを作成/エクスポートします。

2-以下の内容で.batファイルを作成します

@Echo off

set classpath="c:\jars\lib\*****.jar;c:\jars\lib\*****.jar;c:\extJars\****.jar"

Java -cp %classpath%;c:\apps\applName\yourJar.jar com.****.****.MainMethod args1 args2 ...

@pause

3-使用している外部jarがある場合、クラスパスの設定が必要です。

4- .batファイルとjarファイルを同じフォルダーに入れます。

5- Java -cpコマンドに従って、jarファイルの正確な場所とメインメソッドの完全修飾名を指定し、要件に従って引数リストが続きます。

0
JitenS

内部.batファイル形式

SET CLASSPATH =%Path%;

------- set Java classpath and jar location -------- set classpath =%CLASSPATH%; ../ lib/MoveFiles.jar;

--------- Java jarで指定された、実行するクラスの完全に分類された名前に言及してください------ Java com.mits.MoveFiles pause

0

コマンドコンソールで行うのと同じ方法。これらのコマンドをバッチファイルに正確にコピーします。

0
BalusC

新しく作成された.batファイルで次のコマンドを使用できます。

@echo off
call C:\SWDTOOLS\**PATH\TO\Java**\Java_1.7_64\jre\bin\Java -jar workspace.jar  

システムにJavaの複数のバージョンがインストールされている場合は、Javaのパスを指定し、メインメソッドとマニフェストファイルが指定されていることを確認してください。 jarファイルを作成します。

0
bosari