командный файл для запуска jar-файла с параметрами - PullRequest
9 голосов
/ 10 июня 2011

Как запустить пакетный файл и передать параметры в файл jar?

это не работает

mybat.bat

java -jar log_parser.jar %1 %2 %3 %4

запущенный файл летучей мыши

C:\>log_parser.bat -file=C:\\trace_small.log -str=Storing

Ява видит только -file

Ответы [ 4 ]

22 голосов
/ 14 июня 2011

Я только что попробовал с небольшой программой Java, которая только выводит аргументы на экран:

public static void main(String[] args)
{
    for(String s : args)
    {
        System.out.println(s);
    }
}   

и следующий пакетный файл:

java -jar test.jar %1 %2 %3 %4

и я получил следующий результат

-file
C:\\trace_small.log
-str
Storing

Для той же командной строки, что и у вас ... знак равенства '=' исчез. Теперь, если вы укажете командный файл на это:

java -jar test.jar %*

вы получите еще один результат (который может быть тем, что вы ожидали - не ясно)

-file=C:\\trace_small.log
-str=Storing

Преимущество этого синтаксиса% * в том, что он более расширяем, принимая любое количество аргументов.

Надеюсь, это поможет, но я рекомендую вам взглянуть на ваш код и добавить несколько операторов отладки, чтобы понять, где вы «теряете» некоторую часть ввода.

0 голосов
/ 07 марта 2018

Например, открытие редактора карт улиц в Windows 10 x64

> cd "C:\Program Files\Java\jre1.8.0_161\bin\"

> javaw.exe -Xmx2048m -jar "C:\Program Files (x86)\JOSM\josm-tested.jar"
0 голосов
/ 21 марта 2017

В моем случае я использую следующий bat-файл:

@echo off
PATH_TO_JRE\bin\java.exe -jar -Denable=true your_file.jar

В этом конкретном случае в java-коде я могу получить параметр "enable" следующим образом:

Boolean.getBoolean("enable") 
0 голосов
/ 14 июня 2011

1) Вы можете попробовать использовать

"- Dfile = C: \ trace_small.log -Dstr = Сохранение "

Переменные будут установлены как системное свойство Java, но не как параметры в методе main.

2) Попробуйте поставить аргументы без '='

log_parser.bat -file C: \ trace_small.log -str Сохранение

...