wake-up-neo.com

Führen Sie .jar aus der Batchdatei aus

Ich habe eine ausführbare .jar-Datei erstellt. Wie kann ich den .jar mit einer Batch-Datei ausführen, ohne einen Klassenpfad anzugeben?

40
Arivu2020

Unter Windows können Sie den folgenden Befehl verwenden.

start javaw -jar JarFile.jar

Dadurch bleibt das Eingabeaufforderungsfenster nicht geöffnet.

49
Jleuleu

Hierfür gibt es eine Lösung, bei der der Pfad der JAR-Datei in der .bat nicht angegeben werden muss. Dies bedeutet, dass die JAR-Datei ohne Änderungen im Dateisystem verschoben werden kann, solange sich die .bat-Datei immer im selben Verzeichnis wie die JAR-Datei befindet. Der .bat-Code lautet:

Java -jar %~dp0myjarfile.jar %*

Grundsätzlich würde %0 auf den vollständigen Pfad .bat und %~dp0 auf den vollständigen Pfad .bat mit Ausnahme des Dateinamens erweitert. %~dp0myjarfile.jar ist also der vollständige Pfad der Datei myjarfile.jar, die sich in der .bat-Datei befindet. %* nimmt alle Argumente an die .bat-Datei und leitet sie an das Java-Programm weiter. (Siehe: http://www.Microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true )

21
BrunoMedeiros

Wenn Sie möchten, dass eine Batchdatei eine JAR-Datei ausführt, erstellen Sie eine leere Datei namens runjava.bat mit dem Inhalt:

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

Sie können eine Batchdatei mit der Erweiterung .bat mit folgendem Inhalt erstellen

Verwenden Sie Java für .jar, der keine Benutzeroberfläche hat und eine Befehlszeilenanwendung ist

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

Verwenden Sie javaw für .jar, der eine Benutzeroberfläche hat

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

Stellen Sie sicher, dass Ihr Java_HOME in den Umgebungsvariablen festgelegt ist.

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

Beispiel: cd C:\Benutzer *****\Desktop\Verzeichnis\Ziel

Java -jar myjar.jar

Beispiel für eine bat-Datei:

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

Das wird gut funktionieren.

5
BRjava

Um eine .jar-Datei von der Kommandozeile aus auszuführen, verwenden Sie einfach:

Java -jar YourJar.jar

Kopieren Sie dazu als Batchdatei den Befehl einfach in eine Textdatei und speichern Sie ihn als .bat:

@echo off
Java -jar YourJar.jar

Der @echo off sorgt lediglich dafür, dass der zweite Befehl nicht gedruckt wird.

5
mdm

Wenn das Doppelklicken auf die JAR-Datei in Windows Explorer funktioniert, sollten Sie Folgendes verwenden können:

start myapp.jar

in Ihrer Batchdatei.

Der Windows-Befehl start macht im Hintergrund genau dasselbe wie ein Doppelklick auf eine Datei.

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

Möglicherweise müssen Sie dem Befehl "\\" hinzufügen. Versuche dies!

2
Venkat

Ich verstehe die Frage so, dass das OP versucht zu vermeiden, einen Klassenpfad in seiner Befehlszeile anzugeben. Sie können dies tun, indem Sie den Klassenpfad in die Manifest-Datei einfügen. 

Im Manifest:

Class-Path: Library.jar

Dieses Dokument enthält weitere Einzelheiten:

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

Um eine JAR-Datei mit der Manifestdatei MANIFEST zu erstellen, können Sie den folgenden Befehl verwenden:

jar -cmf MANIFEST MyJar.jar <class files>

Wenn Sie relative Klassenpfade angeben (z. B. andere JAR-Dateien im selben Verzeichnis), können Sie die JAR-Dateien verschieben, und die in der mdm-Antwort erwähnte Batchdatei funktioniert weiterhin.

1
merlin2011

Sie müssen sicherstellen, dass Sie den Klassenpfad in der Datei MANIFEST.MF angeben. Wenn Sie Maven für das Packen verwenden, können Sie die folgenden Plugins konfigurieren:

1. Maven-Depedenz-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>

Die resultierende Manifestdatei wird in die ausführbare jar unter META-INF gepackt und sieht folgendermaßen aus:

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

Das Windows-Skript würde folgendermaßen aussehen:

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

Dies sollte die vollständige Konfiguration sein, um eine ausführbare Dose mit Maven zu erstellen :)

1
razvanone

Schritte 1- Erstellen/Exportieren einer ausführbaren JAR-Datei aus Ihrem Projekt.

2- Erstellen Sie eine .bat-Datei mit dem folgenden Inhalt

@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-set classpath ist erforderlich, wenn Sie externe Jars verwenden.

4- Legen Sie die .bat-Datei und die JAR-Datei in demselben Ordner ab.

5- Geben Sie gemäß dem Java -cp-Befehl Ihren genauen Speicherort für die JAR-Datei und den vollständig qualifizierten Namen der Hauptmethode an, gefolgt von einer Argumentliste, je nach Anforderung.

0
JitenS

im .bat-Dateiformat

SET CLASSPATH =% Path%;

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

--------- Erwähnen Sie Ihren vollständig klassifizierten Namen der auszuführenden Java= Klasse, der in jar angegeben wurde ------ Java com.mits.MoveFiles pausieren

0

Genauso wie in der Befehlskonsole. Kopieren Sie genau diese Befehle in die Batchdatei.

0
BalusC

sie können den folgenden Befehl in der neu erstellten .bat-Datei verwenden: 

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

Bitte geben Sie den Pfad zu Java an, wenn im System mehrere Java-Versionen installiert sind, und stellen Sie sicher, dass Sie die Hauptmethode und die Manifest-Datei beim Erstellen der JAR-Datei erstellt haben.

0
bosari