2010-04-12 24 views

Odpowiedz

3

Jeśli dwukrotne kliknięcie pliku .jar w Eksploratorze Windows działa, to powinieneś być w stanie korzystać z tego:

start myapp.jar 

w pliku wsadowym.

Komenda Windows start wykonuje dokładnie to samo za sceną, co dwukrotne kliknięcie pliku.

+0

Daje błąd, że system Windows nie może znaleźć pliku myapp.jar (mój plik JAR). – Arivu2020

+0

@ Arivu2020: Czy jesteś we właściwym katalogu?Być może twój plik wsadowy musi wykonać 'cd c: \ path \ to \ my \ stuff' przed próbą uruchomienia pliku jar? – RichieHindle

0

Tak samo, jak w konsoli poleceń. Skopiuj dokładnie te polecenia w pliku wsadowym.

2

Aby uruchomić plik z wiersza poleceń .jar, wystarczy użyć:

java -jar YourJar.jar 

Aby to zrobić jako plik wsadowy, wystarczy skopiować polecenie do pliku tekstowego i zapisać go jako .bat:

@echo off 
java -jar YourJar.jar 

Po upewnieniu się, że drugie polecenie nie jest drukowane, wystarczy @echo off.

+0

'@echo ...' jest tylko dla okien ... –

+0

@Carlos: Założono, że jako OP poprosił o plik wsadowy, że korzystali z systemu Windows. – mdm

+0

po prostu notatka ... –

12

Jeśli chcesz plik wsadowy do uruchomienia pliku jar, uczynić pusty plik o nazwie runjava.bat z treścią:

java -jar "C:\myjarfile.jar" 
2
java -jar "C:\\myjarfile.jar" 

może trzeba dodać "\\" do komendy. Spróbuj tego!

43

W systemie Windows można użyć następującego polecenia.

start javaw -jar JarFile.jar 

W ten sposób okno wiersza polecenia nie pozostaje otwarte.

+0

Dzięki za udostępnienie! :) – MikkoP

+0

System Windows nie może znaleźć "javaw". Naprawiłem to przez "start JarFile.jar" (z plikiem .jar w tym samym folderze, co plik wsadowy). – NiteCyper

+0

OMG! Jak zatrzymać to teraz? – shyam

1

Moje rozumienie pytania polega na tym, że OP stara się unikać określania ścieżki klasy w jego linii poleceń. Możesz to zrobić, umieszczając ścieżkę klasy w pliku manifestu.

W manifeście:

Class-Path: Library.jar 

Niniejszy dokument zawiera więcej szczegółów:

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

Aby utworzyć słoik pomocą oczywistego plik o nazwie manifeście, można użyć następującego polecenia:

jar -cmf MANIFEST MyJar.jar <class files> 

Jeśli wybierzesz względną klasę pa ths (tj. inne słoiki w tym samym katalogu), możesz przenieść słoik dookoła, a plik wsadowy wspomniany w odpowiedzi mdm będzie działał.

21

Istnieje rozwiązanie, które nie wymaga określenia ścieżki pliku jar wewnątrz pliku .bat. Oznacza to, że słoik można przenosić w systemie plików bez żadnych zmian, o ile plik .bat zawsze znajduje się w tym samym katalogu, co plik jar. The.Kod bat jest:

java -jar %~dp0myjarfile.jar %* 

Zasadniczo %0 byłoby rozszerzyć do pełnej ścieżki bat i %~dp0 rozszerza się do pełnej ścieżki bat wyjątkiem nazwy pliku. Tak więc %~dp0myjarfile.jar jest pełną ścieżką pliku myjarfile.jar skojarzonego z plikiem .bat. %* pobiera wszystkie argumenty podane do pliku .bat i przekazuje je do programu Java. (Patrz: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true)

+1

To jest świetne, ale pozostawia literę dysku wyłączoną. – guthrie

+3

Masz rację. '% ~ dp0' musi być użyty zamiast'% ~ p0', aby mieć również literę dysku. Będę edytować odpowiedź. – BrunoMedeiros

5
cd "Your File Location without inverted commas" 

przykład: CD C: \ Users ***** \ Pulpit \ katalog \ target

java -jar myjar.jar 

przykładowy plik bat wygląda następująco:

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

To zadziała dobrze.

+0

Dlaczego bez cudzysłowów (cudzysłów)? Jeśli ścieżka zawiera spację w nazwie, potrzebujesz cudzysłowów. – Rob

-1

shoult spróbować tego:

java -cp youJarName.jar your.package.your.MainClass 
10

Można utworzyć plik wsadowy z .bat przedłużenia o następującej treści

Zastosowanie java dla .jar że nie ma interfejs i jest aplikacją linii poleceń

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

Użyj javaw dla .jar z interfejsem użytkownika

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

Upewnij się, że JAVA_HOME jest ustawione w zmiennych środowiskowych.

+0

Precyzyjne i dokładne informacje. Bardzo zobowiązany! –

1

Należy upewnić się, że określono ścieżkę klasy w pliku MANIFEST.MF. Jeśli używasz Maven zrobić opakowanie, można skonfigurować następujące wtyczki:

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> 

Powstały plik manifestu będzie być pakowane w słoiku pod wykonywalnego META-INF i będzie wyglądać następująco:

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 

skrypt systemu Windows będzie wyglądać następująco:

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

ta powinna być kompletna config do budowania słoik wykonywalny przy użyciu Maven :)

0

można użyć następującego polecenia w pliku .bat nowo utworzona:

@echo off 
call C:\SWDTOOLS\**PATH\TO\JAVA**\java_1.7_64\jre\bin\java -jar workspace.jar 

Proszę podać ścieżkę do Javy, jeśli istnieje to wiele wersji java zainstalowanych w systemie i upewnij się, że określono główną metodę i plik manifestu jest tworzony podczas tworzenia pliku JAR.