Перейти к содержимому

Как передать параметры в java в bat

  • автор:

Как в пакетный файл *.bat передать параметр из командной строки для Java

Author24 — интернет-сервис помощи студентам

Тут происходит следующее. После запуска бат файла, происходит компиляция javac Pirma.java, затем запуск без параметров Pirma.java. На выходе получим Hello, World! Ниже нужно указать 2 параметра имя и фамилию, чтобы было как будто бы java Pirma Name Surname.

Например, это не работает:

1 2 3
set /p kint = Please write down your name and surname: java Pirma %kint% java Pirma kint

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Файл как параметр командной строки
Помогите пожалуйста исправить ошибку и запилить название файда как параметр командной строки. .

Написать пакетный файл, обрабатывающий параметры командной строки и код завершения команды (программы)
Помогите пожалуйста написать пакетный файл обрабатывающий параметры командной строки и кода.

Как передать параметр из jsp java страницы в функцию javascript и возвратить обратно другой параметр
На jsp странице имеется динамически формируемая таблица с чекбоксами в первой колонке каждой строки.

Разработать пакетный файл для установки даты и времени (параметры – в командной строке и во внешнем файле)
Разработать пакетный файл для установки даты и времени (параметры – в командной строке и во внешнем.

Эксперт JS

5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,789

Лучший ответ

Сообщение было отмечено Aliksan как решение

Решение

set /p kint = Please write down your name and surname: java Pirma %kint%

Вот, ваш же код. Он и должен работать

Добавлено через 1 минуту
А, ну да, конечно. Лишние пробелы после имени переменной.

set /p kint = .

задаст перменную kint[пробел]

set /p kint=Please write down your name and surname: java Pirma %kint%

Регистрация: 22.09.2015
Сообщений: 173
Забыл, что пробелы важны, спасибо!
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как передать аргументы командной строки для обработки в слот?
Считай только начал работать с Qt. Возникла такая задача: обработать аргументы командной строки.

Файл: Передать файл в качестве параметра командной строки в программу
Есть программа с файлом(Eclipse) import java.io.*; public class clj < >class ShowFile

NASM — передать имя файла для инклюда как макрос из командной строки
Привет! Достался мне в наследство код, написанный на nasm’е. Для компиляции используется такая.

Разработать пакетный bat-файл
Разработать пакетный файл для перехода студента в личный каталог. Группа выбирается из меню, курс.

Как вычислить параметр командной строки?
Суть. Нужно сделать, чтобы скрипт определял запущены ли регламентные задания в 1с в отдельном.

Или воспользуйтесь поиском по форуму:

Аргументы командной строки

На вход программы можно передавать значения, это делается с помощью аргументов командной строки. Допустим, нам необходимо запустить программу MySecondApp и передать на вход значения «значение1» и «значение2». Из командной строки пишем следующую строчку:

java com.company.lesson2.MySecondApp значение1 значение2

Как получить переданные значения в программе? Давайте более детально рассмотрим метод main :

public static void main(String[] args)

Этот метод принимает на вход в качестве параметра массив типа String : String[] args . Именно эта переменная и будет содержать в себе, переданные нами значения «значение1», «значение2».

Метод main() в следующем примере использует цикл for для перебора элементов массива args и распечатывает значения аргументов командной строки. Что такое цикл for и массивы мы рассмотрим более подробно в следующих занятиях.

package com.company.lesson2; public class MySecondApp < public static void main(String[] args) < for (String str : args) < System.out.println("аргумент language-markup">java com.company.lesson2.MySecondApp значение1 значение2

Вывод на консоль:

аргумент = значение1 аргумент = значение2

Презентацию с видео можно скачать на Patreon .

Как передать параметры в java в bat

Сообщения: 4
Благодарности: 0

Спасибо всем за помощь.
Не получается сделать в одну строчку, мне нужно будет использовать where для нескольких, разных файлов и чтобы в начале прописывалось имя компьютера: %computername%;filename1;filename2 и тд

Еще такой вопрос реально ли вообще вывести путь от куда запущены текущие java.exe процессы, без вывода аргументов с которыми он стартован? Пробовал через wmic с выводом commandline - путь указывает, но еще и указывает кучу не нужных аргументов с которыми стартован процесс (((

В итоге хотел бы получить такую информацию: %computername%;filename1;filename2;all_java.exe_process_path

Заранее огромное спасибо!

Последний раз редактировалось Runn3r, 14-08-2018 в 15:03 .

Сообщения: 27449
Благодарности: 8086

Runn3r, так Вам как надо-то? В моём понимании или в понимании коллеги alpap? Такой:

ComputerName;c:\Windows\notepad.exe ComputerName;c:\Windows\System32\notepad.exe ComputerName;c:\Windows\SysWOW64\notepad.exe
ComputerName;c:\Windows\notepad.exe;c:\Windows\System32\notepad.exe;c:\Windows\SysWOW64\notepad.exe

Цитата Runn3r:

мне нужно будет использовать where для нескольких, разных файлов »

Ну, так и используйте несколько:

where.exe /r c:\ "notepad.exe" "calc.exe" "regedit.exe"

Как передать параметры в java в bat

Есть .bat файл для запуска программы с таким содержимым: java -jar "C:\Tera\TeraPrime 4\getdown-1.7.1.jar" "C:\Tera\TeraPrime 4\bin" нужно или запустить этот bat-ник с помощью WinExec, или запустить cmd.exe с такими параметрами. bat-ник запускает программу если открыть его обычным образом, а через WinExec черное окошко мигает на долю секунды и все, если открыть bat-ник через WinExec, тоже ничего не происходит.

Add(Button,8377986,315,245)
Left=55
Top=300
link(onClick,15366726:doConsoleExec,[])
>
Add(WinExec,15366726,378,231)
FileName="cmd.exe"
Param="java -jar "C:\Tera\TeraPrime 4\getdown-1.7.1.jar" "C:\Tera\TeraPrime 4\bin""
Point(doConsoleExec)
Point(doConsoleInput)
link(Params,412603:Text,[])
>
Add(VisualStrings,412603,385,196)
Lines=#81:java -jar "C:\\Tera\\TeraPrime 4\\getdown-1.7.1.jar" "C:\\Tera\\TeraPrime 4\\bin"|
Point(doText)
Point(onText)
>
Add(MainForm,11629800,315,189)
Width=409
Height=528
Caption="Ping localhost"
>

В папке C:\Tera\TeraPrime 4\bin находится.jar файл, это программа которая запускается батником

Редактировалось 1 раз(а), последний 2019-09-14 17:57:30

#1.1 контекстная реклама от партнеров

Sersey

Ответов: 537
Рейтинг: 14
#2: 2019-09-14 20:30:02 ЛС | профиль | цитата

Вот схема, какую команду передать, чтобы перейти в C:\Windows\system32, CD C:\Windows\system32, не работает, если удастся перейти, может и java -jar "C:\Tera\TeraPrime 4\getdown-1.7.1.jar" "C:\Tera\TeraPrime 4\bin" получится запустить как писал выше.

 Add(MainForm,10385931,98,182)
Left=20
Top=105
Width=413
Height=499
>
Add(WinExec,6219169,245,217)
FileName="cmd.exe "
Point(doConsoleInput)
Point(onConsoleResult)
Point(doConsoleExec)
Point(onConsoleError)
link(onConsoleResult,6776693:doEvent1,[])
link(onConsoleError,6776693:doEvent2,[])
>
Add(Edit,13066046,161,182)
Left=5
Top=40
Width=350
Text=""
>
Add(Charset,5379116,329,231)
link(onCharset,10701895:doAdd,[])
>
Add(Memo,10701895,392,231)
Left=5
Top=90
Width=385
Height=365
Ctl3D=1
ScrollBars=2
>
Add(Button,1666771,98,273)
Left=5
Top=10
Width=135
Height=25
Caption="start"
Flat=0
link(onClick,6219169:doConsoleExec,[(219,279)(219,244)])
>
Add(Hub,6776693,294,231)
InCount=2
OutCount=1
link(onEvent1,5379116:doCharset,[])
>
Add(FormatStr,11080754,161,231)
DataCount=1
Mask="%1\r\n"
link(onFString,6219169:doConsoleInput,[])
link(Str1,13066046:Text,[])
>
Add(Button,14895882,98,231)
Left=5
Top=65
Width=135
Height=25
Caption="command"
Flat=0
link(onClick,11080754:doString,[])
>

--- Добавлено в 2019-09-14 20:52:43

Переместится в другой каталог получилось cd /d C:\Windows\system32, а параметр java -jar "C:\Tera\TeraPrime 4\getdown-1.7.1.jar" "C:\Tera\TeraPrime 4\bin" не передается, пишут Синтаксическая ошибка в имени файла, имени папки или метке тома.

Редактировалось 1 раз(а), последний 2019-09-14 20:52:43

Netspirit

Ответов: 4610
Рейтинг: 745
#3: 2019-09-16 11:14:18 ЛС | профиль | цитата

"В другой каталог" можно "переместиться" с помощью параметра WinExec.WorkingDir

По первой схеме. Если хочешь запускать с помощью CMD - тогда смотри в мануале по CMD как нужно передавать параметры. В частности, параметры /C и /K. Потренироваться можешь в самом CMD: запускаешь, а в нём вводишь "cmd.exe /C . " - если получится, значит вызываешь правильно.

Но в этом нет необходимости. Компонент WinExec справится и сам:

Filename=java.exe
Param=-jar "C:\\Tera\\TeraPrime 4\\getdown-1.7.1.jar" "C:\\Tera\TeraPrime 4\\bin"

Обратить внимание на двойные слеши и почитать в справке почему так.
Красным - это параметры передаваемые jar-файлу, согласно мануалу по параметрам вызова java.exe. Если нужен рабочий каталог - использовать WorkingDir.

Редактировалось 1 раз(а), последний 2019-09-16 11:14:41

Sersey

Ответов: 537
Рейтинг: 14
#4: 2019-09-16 11:26:48 ЛС | профиль | цитата

Я сделал по другому, запускаю консоль -> перехожу в нужный каталог cd /d C:\ -> Передаю консоли запуск .bat файла, а в файле параметры какие нужно для запуска

Netspirit

Ответов: 4610
Рейтинг: 745
#5: 2019-09-16 11:36:55 ЛС | профиль | цитата

И что мешает реализовать то, что в bat-файле, с помощью WinExec?
Если есть проблемы с рабочим каталогом - перед запуском можно попробовать точку doCurrentDir компонента Dir.

Редактировалось 2 раз(а), последний 2019-09-16 11:38:22

Sersey

Ответов: 537
Рейтинг: 14
#6: 2019-09-16 11:41:40 ЛС | профиль | цитата
Запустил через WinExec, все работает, спасибо

Add(MainForm,2953706,91,105)
link(onActivate,6219169:doConsoleExec,[])
>
Add(WinExec,6219169,147,91)
FileName="java.exe"
Param="-jar "C:\\Files\\getdown.jar" "C:\\Files\\bin""
Point(doConsoleExec)
Point(doConsoleInput)
Point(onConsoleResult)
>

Редактировалось 1 раз(а), последний 2019-09-16 11:44:08

Netspirit

Ответов: 4610
Рейтинг: 745
#7: 2019-09-16 12:11:24 ЛС | профиль | цитата

Использование события MainForm.onActivate, полагаю, не то, что тебе нужно. Так как событие срабатывает много раз на протяжении работы программы. Используй onCreate.
Чтобы Java не показывала черное окно консоли - можно вместо java.exe использовать javaw.exe и метод WinExec.doExec вместо doConsoleExec (есть нюансы). Кроме того, скрыть окно консоли можно свойством Mode.

Редактировалось 3 раз(а), последний 2019-09-16 12:16:33

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *