пакетный файл для запуска jar-файл с параметрами

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

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

mybat.летучая мышь!--9-->

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

запуск bat-файла

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

java видит только -file

4 ответов


Я просто попытался с небольшой программой 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

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

java -jar test.jar %*

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

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

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

надеюсь, это поможет, но я рекомендую вам взглянуть на свой код и добавить некоторые инструкции отладки, чтобы понять, где вы "теряете" некоторую часть ввода.


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

" - Dfile=C:\trace_small.бревно -Области=Хранение"

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

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

log_parser.Bat-файл C:\trace_small.log-str хранение


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

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

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

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"