Ho creato un file eseguibile .jar
. Come posso eseguire .jar
utilizzando un file batch senza menzionare un percorso di classe?Esegui .jar dal file batch
risposta
Se doppio clic sul file .jar in Windows Explorer funziona, allora si dovrebbe essere in grado di utilizzare questo:
start myapp.jar
nel file batch.
Il comando Windows start
fa esattamente la stessa cosa dietro le quinte come doppio clic su un file.
Dà l'errore windows non riesce a trovare myapp.jar (il mio file jar). – Arivu2020
@ Arivu2020: sei nella directory giusta?Forse il tuo file batch deve fare cd cd: \ path \ to \ my \ stuff' prima di provare a eseguire il file jar? – RichieHindle
Proprio come si farebbe nella console di comando. Copia esattamente quei comandi nel file batch.
Per eseguire un file .jar
dalla riga di comando, basta usare:
java -jar YourJar.jar
Per fare questo come un file batch, è sufficiente copiare il comando in un file di testo e salvarlo come un .bat
:
@echo off
java -jar YourJar.jar
Il @echo off
garantisce solo che il secondo comando non venga stampato.
'@echo ...' è solo per Windows ... –
@Carlos: ho pensato che, come l'OP chiedeva un file batch, che stessero usando Windows. – mdm
solo una nota ... –
Se si desidera un file batch per eseguire un file jar, fare un file vuoto chiamato runjava.bat con il contenuto:
java -jar "C:\myjarfile.jar"
java -jar "C:\\myjarfile.jar"
Potrebbe essere necessario aggiungere "\\"
al comando. Prova questo!
Su Windows è possibile utilizzare il seguente comando.
start javaw -jar JarFile.jar
In questo modo, la finestra del prompt dei comandi non rimane aperta.
La mia comprensione della domanda è che l'OP sta cercando di evitare di specificare un percorso di classe nella sua linea di comando. Puoi farlo inserendo il percorso di classe nel file Manifest.
Nel manifesto:
Class-Path: Library.jar
Questo documento fornisce ulteriori dettagli:
http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html
Per creare un vaso utilizzando il un file manifesto denominato MANIFEST, è possibile utilizzare il seguente comando:
jar -cmf MANIFEST MyJar.jar <class files>
Se si specifica l'ordine di classe relativo ths (cioè, altri jar nella stessa directory), quindi puoi spostare il barattolo e il file batch menzionato nella risposta di mdm funzionerà ancora.
Esiste una soluzione a ciò che non richiede di specificare il percorso del file jar all'interno di .bat. Ciò significa che il jar può essere spostato nel filesystem senza modifiche, purché il file .bat si trovi sempre nella stessa directory del jar. Il .codice pipistrello è:
java -jar %~dp0myjarfile.jar %*
Fondamentalmente %0
sarebbe espandersi al percorso completo bat e %~dp0
espande il percorso completo bat tranne il nome del file. Quindi %~dp0myjarfile.jar
è il percorso completo del file myjarfile.jar, con il file .bat. %*
prenderà tutti gli argomenti dati a .bat e lo passerà al programma Java. (Vedi: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true)
Questo è ottimo, ma lascia la lettera di unità spenta. – guthrie
Hai ragione. '% ~ dp0' deve essere usato al posto di'% ~ p0' per avere anche la lettera del drive. Modificherò la risposta. – BrunoMedeiros
cd "Your File Location without inverted commas"
esempio: cd c: \ Users ***** \ Desktop \ directory \ destinazione
java -jar myjar.jar
esempio di file bat si presenta così:
@echo OFF
cd C:\Users\****\Desktop\directory\target
java -jar myjar.jar
Questo funzionerà correttamente.
Perché senza virgolette (virgolette)? Se il percorso ha uno spazio nel nome, sono necessarie le virgolette. – Rob
si shoult provare questo:
java -cp youJarName.jar your.package.your.MainClass
È possibile creare un file batch con .bat
estensione con i seguenti contenuti
Usa java
per .jar
che non ha interfaccia utente ed è un'applicazione a riga di comando
@ECHO OFF
start java -jar <your_jar_file_name>.jar
Usa javaw
per .jar
che ha un'interfaccia utente
@ECHO OFF
start javaw -jar <your_jar_file_name>.jar
Accertarsi che il proprio JAVA_HOME
sia impostato nelle variabili di ambiente.
Informazioni precise e accurate. Molto obbligato! –
È necessario assicurarsi di specificare il classpath nel file MANIFEST.MF. Se si utilizza Maven per fare la confezione, è possibile configurare i seguenti plugin:
1. Maven-di dipendenze-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>
Il file manifesto risultante essere confezionata nei jar eseguibile sotto META-INF e sarà simile a questa:
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
lo script di Windows sarebbe simile a questa:
@echo on
echo "Starting up the myexecjar application..."
java -jar myexecjar-1.0.0-SNAPSHOT.jar
Questo dovrebbe essere di configurazione completa per la costruzione di un jar eseguibile utilizzando Maven :)
è possibile utilizzare il seguente comando nella .bat file appena creato:
@echo off
call C:\SWDTOOLS\**PATH\TO\JAVA**\java_1.7_64\jre\bin\java -jar workspace.jar
si prega di fornire il percorso del Java Se non ci sono più versioni di java installate nel sistema e assicurati di aver specificato il metodo principale e il file manifest viene creato durante la creazione del file jar.
- 1. Esegui la stored procedure dal file batch
- 2. Esegui file jar nell'immagine docker
- 3. Esegui file .jar da un programma Java
- 4. Esegui il file batch in vb.net?
- 5. Esegui file batch da Delphi IDE
- 6. Esegui istruzioni DB dal file
- 7. Esegui jar nella console
- 8. Ant: escludi file dal file jar unito
- 9. Chiudere un file batch dopo aver eseguito il file jar
- 10. Eseguire un file batch in una nuova finestra dal batch?
- 11. Come estrarre le classi dal file .jar?
- 12. Invoke EXE dal file batch * senza * attendere
- 13. Scarica la versione java dal file batch
- 14. invio di posta dal file batch
- 15. Esegui file batch dopo ogni generazione in eclissi
- 16. Inno Setup Esegui il file batch estratto come amministratore
- 17. Esegui il file batch come amministratore su Jenkins?
- 18. Esegui jar con parametri nel gradle
- 19. lettura del file MANIFEST.MF dal file jar utilizzando JAVA
- 20. Come escludere il file delle proprietà dal file jar?
- 21. Scegli Massima file numerato - Batch File
- 22. Includere un file batch in un file batch
- 23. File batch: maschera file
- 24. Escludere la cartella META-INF/Maven dal file jar generato
- 25. Android Studio esclude classe o file dal jar
- 26. Come creare un file jar dal progetto javaFX
- 27. Copia file di estensione gradle dal plug-in jar
- 28. File batch di Windows per eseguire il file jar più volte
- 29. come riferimento tutti i file JAR in una directory nel mio file batch
- 30. Esegui comando CMD dal codice
Amico, la formattazione, una domanda non è un segmento di codice. –