Я создал исполнительный файл .jar
. Как я могу выполнить команду .jar
с использованием пакетного файла без указания пути к классу?Запустить .jar из пакетного файла
ответ
Если дважды щелкнув .jar файл в проводнике Windows, работает, то вы должны быть в состоянии использовать это:
start myapp.jar
в пакетный файл.
Команда Windows start
выполняет то же самое за кулисами, как двойной щелчок по файлу.
Он дает окна ошибок не может найти myapp.jar (мой файл jar). – Arivu2020
@ Arivu2020: Вы находитесь в правильном каталоге?Возможно, вашему пакетному файлу нужно выполнить 'cd c: \ path \ to \ my \ stuff', прежде чем пытаться запустить файл jar? – RichieHindle
Так же, как и в командной консоли. Скопируйте именно эти команды в пакетном файле.
Чтобы запустить .jar
файл из командной строки, просто используйте:
java -jar YourJar.jar
Чтобы сделать это, как пакетный файл, просто скопировать команду в текстовый файл и сохранить его как .bat
:
@echo off
java -jar YourJar.jar
@echo off
просто гарантирует, что вторая команда не будет напечатана.
'@echo ...' предназначен только для окон ... –
@ Карлос: Я предположил, что, когда OP запросил пакетный файл, они использовали Windows. – mdm
просто примечание ... –
Если вы хотите пакетный файл, чтобы запустить файл банку, сделать пустой файл с именем runjava.bat с содержимым:
java -jar "C:\myjarfile.jar"
java -jar "C:\\myjarfile.jar"
Вам может понадобиться добавить "\\"
к команде. Попробуй это!
В Windows вы можете использовать следующую команду.
start javaw -jar JarFile.jar
Таким образом, окно командной строки не остается открытым.
Мое понимание вопроса заключается в том, что ОП пытается избежать указания пути класса в своей командной строке. Вы можете сделать это, поместив путь класса в файл манифеста.
В манифесте:
Class-Path: Library.jar
Этот документ дает более подробную информацию:
http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html
Чтобы создать банку, используя файл манифеста с именем MANIFEST, вы можете использовать следующую команду:
jar -cmf MANIFEST MyJar.jar <class files>
Если вы укажете относительный класс-pa ths (т. е. другие банки в одном каталоге), тогда вы можете переместить банку, и файл партии, упомянутый в ответе mdm, по-прежнему будет работать.
Существует такое решение, которое не требует указания пути файла jar внутри .bat. Это означает, что банку можно перемещать в файловой системе без каких-либо изменений, если файл .bat всегда находится в том же каталоге, что и банка. .летучая код:
java -jar %~dp0myjarfile.jar %*
В основном %0
будет расширяться на .bat полный путь, и %~dp0
расширяется до .bat полный путь, кроме имени файла. Итак, %~dp0myjarfile.jar
- это полный путь к файлу myjarfile.jar, помещенному в файл .bat. %*
возьмет все аргументы, переданные в .bat, и передаст их в программу Java. (См http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true)
Это замечательно, но оставляет букву диска. – guthrie
Вы правы. '% ~ dp0' следует использовать вместо'% ~ p0', чтобы иметь букву диска. Я отредактирую ответ. – BrunoMedeiros
cd "Your File Location without inverted commas"
пример: CD C: \ Users ***** \ Desktop \ каталог \ целевой
java -jar myjar.jar
пример летучей мыши файл выглядит следующим образом:
@echo OFF
cd C:\Users\****\Desktop\directory\target
java -jar myjar.jar
Это будет нормально работать.
Почему без кавычек (кавычек)? Если путь имеет пробел в имени, вам нужны перевернутые запятые. – Rob
вы shoult попробовать это один:
java -cp youJarName.jar your.package.your.MainClass
Вы можете создать пакетный файл с .bat
расширением со следующим содержимым
Использование java
для .jar
, который не имеет интерфейс и приложение командной строки
@ECHO OFF
start java -jar <your_jar_file_name>.jar
Использование javaw
для .jar
, который имеет интерфейс
@ECHO OFF
start javaw -jar <your_jar_file_name>.jar
Убедитесь, что ваш JAVA_HOME
установлен в переменных окружения.
Точная и точная информация. Обязательно! –
Необходимо указать путь к классу в файле MANIFEST.MF. Если вы используете Maven, чтобы сделать упаковку, вы можете настроить следующие плагины:
1. Maven-depedency-плагин:
2. Maven-банку-плагин:
<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 и будет выглядеть следующим образом:
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 :)
вы можете использовать следующую команду в .bat файла заново создано:
@echo off
call C:\SWDTOOLS\**PATH\TO\JAVA**\java_1.7_64\jre\bin\java -jar workspace.jar
Пожалуйста, дайте путь Java, если это несколько версий java, установленных в системе, и убедитесь, что вы указали основной метод и файл манифеста создается при создании файла jar.
- 1. Запуск Java -jar команда из пакетного файла
- 2. Как запустить файл jar, в котором содержится вызов пакетного файла?
- 3. Как запустить SQL Server из пакетного файла?
- 4. Как запустить файл .sql из пакетного файла?
- 5. Попытка запустить VBS MsgBox из пакетного файла
- 6. Запустить сценарий оболочки из оконного пакетного файла
- 7. Справочные каталоги правильно при запуске .jar из пакетного файла
- 8. Запуск нескольких файлов jar из пакетного файла один за другим
- 9. Пакет пакетного файла в файле jar
- 10. Как запустить файл jar из отдельного файла jar?
- 11. Запуск телнет из пакетного файла
- 12. Выполнение автономного банкомата из пакетного файла
- 13. Как запустить netsh с помощью пакетного файла?
- 14. Выполнение пакетного файла, который находится внутри файла jar
- 15. Создание пакетного файла из файла оболочки
- 16. Служба windows из пакетного файла не выполнена
- 17. Запуск .VBS из пакетного файла
- 18. Как запустить FTP-скрипт из пакетного файла в Windows?
- 19. Есть ли способ запустить диалоги из пакетного файла Windows?
- 20. Запустить PowerShell FUNCTION как администратор из пакетного файла
- 21. Как запустить php-скрипт с аргументами из пакетного файла?
- 22. Как запустить ANT из пакетного файла без установки переменной среды?
- 23. Как запустить несколько окон/вкладок Internet Explorer из пакетного файла?
- 24. Как запустить приложение C# с аргументами из пакетного файла
- 25. Есть ли способ запустить агент Lotus Notes из пакетного файла?
- 26. Как запустить несколько подчиненных пакетных файлов из основного пакетного файла?
- 27. Как запустить команду из пакетного файла и сразу же вернуться?
- 28. Как запустить Visual Studio ехе из пакетного файла
- 29. Запустить два параллельных cmd из одного пакетного файла?
- 30. Обновление пакетного файла MySQL
Чувак, форматирование, вопрос не является сегментом кода. –