Подтвердить что ты не робот

Запустить .jar из пакетного файла

Я создал исполняемый файл .jar. Как я могу выполнить .jar с помощью пакетного файла без указания пути к классу?

4b9b3361

Ответ 1

В Windows вы можете использовать следующую команду.

start javaw -jar JarFile.jar

Таким образом, окно командной строки не остается открытым.

Ответ 2

Существует такое решение, которое не требует указания пути файла jar внутри .bat. Это означает, что банку можно перемещать в файловой системе без каких-либо изменений, если файл .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)

Ответ 3

Если вы хотите, чтобы командный файл запускал файл jar, создайте пустой файл с именем runjava.bat с содержимым:

java -jar "C:\myjarfile.jar"

Ответ 4

Вы можете создать пакетный файл с расширением .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 установлен в переменных среды.

Ответ 5

Чтобы запустить файл .jar из командной строки, просто используйте:

java -jar YourJar.jar

Чтобы сделать это как пакетный файл, просто скопируйте команду в текстовый файл и сохраните ее как .bat:

@echo off
java -jar YourJar.jar

@echo off просто гарантирует, что вторая команда не будет напечатана.

Ответ 6

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

Это будет нормально работать.

Ответ 7

Если дважды щелкнуть файл .jar в проводнике Windows, вы сможете использовать это:

start myapp.jar

в вашем пакетном файле.

Команда Windows start делает то же самое за кулисами, как двойной щелчок по файлу.

Ответ 8

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

Вам может потребоваться добавить "\\" в команду. Попробуйте это!

Ответ 9

Мое понимание вопроса заключается в том, что OP пытается избежать указания пути класса в своей командной строке. Вы можете сделать это, поместив путь класса в файл манифеста.

В манифесте:

Class-Path: Library.jar

В этом документе приведены более подробные сведения:

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

Чтобы создать банку, используя файл манифеста с именем MANIFEST, вы можете использовать следующую команду:

jar -cmf MANIFEST MyJar.jar <class files>

Если вы укажете относительные классы-пути (т.е. другие банки в одном каталоге), вы можете переместить банку, и пакетный файл, упомянутый в ответе mdm, по-прежнему будет работать.

Ответ 10

Вам нужно указать путь к классам в файле 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 и будет выглядеть следующим образом:

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 script будет выглядеть так:

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

Это должна быть полная конфигурация для создания исполняемой банки с использованием Maven:)

Ответ 11

Точно так же, как и в командной консоли. Скопируйте именно те команды в пакетном файле.

Ответ 12

вы можете использовать следующую команду в созданном файле .bat:

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

Укажите путь к java, если в системе установлено несколько версий java и убедитесь, что вы указали основной метод и файл манифеста, созданный при создании файла jar.

Ответ 13

Шаги 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- set classpath требуется, если вы используете какие-либо внешние jar файлы.

4- Поместите .bat файл и jar файл в одну папку.

5- Согласно команде java -cp укажите точное местоположение файла JAR и полное имя основного метода, а затем список аргументов в соответствии с требованиями.

Ответ 14

в формате .bat

SET CLASSPATH =% Path%;

-------set java classpath и дать jar location-------- set classpath =% CLASSPATH%;../lib/MoveFiles.jar;

---------mention ваше полностью классифицированное имя класса Java для запуска, которое было дано в jar------ Java com.mits.MoveFiles pause

Ответ 15

попробуйте следующее:

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