Как я могу запустить пакетный файл и передать параметры в файл jar?
это не работает
mybat.bat
java -jar log_parser.jar %1 %2 %3 %4
запуск bat-файла
C:\>log_parser.bat -file=C:\\trace_small.log -str=Storing
java видит только -file
Как я могу запустить пакетный файл и передать параметры в файл jar?
это не работает
mybat.bat
java -jar log_parser.jar %1 %2 %3 %4
запуск bat-файла
C:\>log_parser.bat -file=C:\\trace_small.log -str=Storing
java видит только -file
Я только что попробовал небольшую 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
Преимущество этого синтаксиса %* заключается в том, что он более расширяем, принимая любое количество аргументов.
Надеюсь, это поможет, но я рекомендую вам взглянуть на свой код и добавить оператор отладки, чтобы понять, где вы «теряете» часть ввода.
1) Вы можете попробовать использовать
"-Dfile=C:\trace_small.log -Dstr=Хранение"
Переменные будут установлены как свойство системы Java, но не как параметры основного метода.
2) Попробуйте поставить аргументы без '='
log_parser.bat -file C:\trace_small.log -str Хранение
В моем случае я использую следующий bat-файл:
@echo off
PATH_TO_JRE\bin\java.exe -jar -Denable=true your_file.jar
В этом конкретном случае в java-коде я могу получить параметр «включить» следующим образом:
Boolean.getBoolean("enable")
Например, открытие редактора карт улиц в 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"