Bat run java code

How to run a jar file from a batch file?

In this post, we will learn to run a .jar file from a .bat file.

Let’s say, we have a JAR file and want to run it using a batch file. So that, we can double click on it and start our Java application.

Note

The batch and bat words are used to refer same thing. The only difference is that, batch is the file format that holds some command to do some action and the bat is the extension of the batch file.

Solution

First, we need to create a file with extension .bat.

For example, I have a HelloWorld.jar file and want to run it from batch script.

In this case, Let’s create a HelloWorld.bat file. (I would prefer to keep the same name as my jar file for bat.)

Note:

If you are creating the bat file using notepad then make sure to select Save as type: All. If you don’t do this, even you give the file name HelloWorld.bat it still saves the file as a text document.

Let’s add content to our batch file:

@ECHO OFF start java -jar HelloWorld.jar

With this code, make sure your .jar and .bat files are in the same location.

If you want to keep your jar file and bat file in different locations then you need to provide the relative location of your jar file.

Now, we can run the batch file by double-clicking on HelloWorld.bat file.

When we double click on the bat file, then it should automatically start a jar file.

Conclusion

Hence, we are able to run our JAR file with the help of a batch (bat) file.

Источник

Как запустить Java-приложение по .bat-файлу [duplicate]

Точно так же вы запускаете его из командной строки. Просто поставьте эту «командную строку» в файл «.bat».

Итак, если вы используете java -cp .;foo.jar Bar , поместите это в .bat файл как

@echo off java -cp .;foo.jar Bar 
@echo off echo You Are going to creata Java Class set /p Name=Enter your Class Name?: echo Your class Name is %Name% & pause echo To creat a Notepad pause notepad %Name%.java set path=%PATH%;C:\Program Files\Java\jdk1.6.0_14\bin pause javac echo Your java Path succsussfully set. javac %Name%.java pause echo Successfully Compiled java %Name% pause 

1) открыть notpad 2) скопируйте и пропустите этот код и сохраните этот файл как ex: test.bat 3) Дважды щелкните пакетный файл. 4) поместите свои java-коды в блокнот и сохраните их как N.B.: сохранить этот java файл в той же папке, что и ваш пакетный файл.

Команда javac будет компилировать java-программу, а команда java запустит программу, а pause приостановит результат до тех пор, пока вы не пересечете его.

Если у вас есть файл jar, то создайте файл bat с помощью:

Вызвать класс, который имеет метод main().

Здесь MyClass будет иметь метод public static void main() .

  • javac (.exe в Windows) двоичный путь должен быть добавлен в глобальную PATH окр. переменная. javac MyProgram.java
  • или с java (.exe в Windows) java MyProgram.jar

Ещё вопросы

  • 0 Выбор элемента таблицы данных объекта JSON для вывода списка всех его элементов
  • 0 Функция php mail с адреса электронной почты показывает адрес почтового сервера
  • 1 Выбор контактов в диалоге
  • 0 Получить все с отличным идентификатором пользователя и порядком по общему счету
  • 0 SQLPro или PostgreSQL SQL обновление строки на основе предыдущего значения строки
  • 0 Найдите поле ввода с определенным идентификатором и атрибутом обновления, используя jQuery
  • 0 Дьявол времени с делегатом jQuery и .not
  • 1 Добавление изображения из ресурсов в XAML
  • 0 Как запустить Javascript и CSS в угловой директивы вывода?
  • 1 Растровое изображение из смещения байтового массива
  • 1 Установка style.backgroundColor выключает код
  • 1 Обрабатывать ложные аргументы
  • 0 memset устанавливает случайные значения [дубликаты]
  • 1 Лучшее использование абстрактных классов переопределения в приложении
  • 1 Добавление раскрытия двойным щелчком в Tree Viewer в SWT
  • 0 карусель css thumb останавливается на 0
  • 0 Я использую угловой фильтр «Дата», но что это за числовое выражение?
  • 0 Symfony2 Необязательный параметр в маршрутизации не имеет значения
  • 1 Не удается изменить права доступа к файлам Java
  • 0 $ index перезапустить каждую строку в ng-repeat
  • 0 Маржа не отображается должным образом
  • 0 Форма размещения статического сайта в другом домене
  • 0 Получить HTML-теги как страницу из базы данных
  • 0 «Неизвестный сервер MySQL» при использовании Flask в Python
  • 1 Unity — CommandInvokationFailure: сборка Gradle завершилась неудачно
  • 0 Входной параметр из командной строки как HEX с N-байтами
  • 1 в Цезии динамический вращающийся компас сбрасывается назад до 0, когда он проходит 360
  • 0 Карты Google — Использование Заменить
  • 0 Предоставить собственный класс C ++ для VB.NET
  • 0 Drupal 7 Изображение Модуль PHP Вывод
  • 1 BluetoothDevice.aliasName неразрешенная ссылка
  • 1 Размер настраиваемого диалогового окна с изменениями анимации
  • 0 C ++: при возврате адреса переменной члена класса компилятор заставляет его иметь тип const *
  • 1 Как получить идентификатор электронной почты в [email protected] вместо «CN = пример / OU = Сервер / O = компания» в заметках лотоса в Java
  • 0 Почему я не могу найти совпадений с knnMatch, используя OpenCV с C ++?
  • 1 Что LSTM делает с состояниями в пакете? Второй элемент первого пакета наследует состояние от первого элемента первого элемента?
  • 1 Невозможно отправить HTTP-запросы по износу Bluetooth
  • 1 Проверка кода JavaScript на наличие опечаток в Notepad ++
  • 1 Определение CultureInfo свойства с помощью DataAnnotation
  • 1 Полимер 2.0 Edge Issue
  • 0 Лучший способ перенаправить старый URL на новый URL
  • 0 Открытие локального файла XML в Google Chrome
  • 0 результат поиска заменить аббревиатуру на текст
  • 0 Почему мой jQuery не меняет цвет фона моего div с изменением анимации?
  • 0 jQuery: другие ссылки внутри элемента div
  • 0 Как отформатировать DateTime с помощью Boost?
  • 0 Подсказка Highcharts показывает дополнительные данные
  • 1 как sys.getsizeof () дает другой результат [duplicate]
  • 1 Добавление тега метаданных google_analytics_adid_collection_enabled в Cordova AndroidManifest.xml

Источник

rZinnatov / compile_run_java_bat

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

@echo off
REM === Inputs ===
set PROJ_ROOT=D:\path\to\project\root
set APP_STARTER=name-of-class-with-main-method
REM set APP_STARTER_PACKAGE=package.of.class-with-main-method
REM ===
REM === Set local env ===
call setenv.bat
set SRC_DIR=%PROJ_ROOT%\src
set BIN_DIR=%PROJ_ROOT%\bin
set APP_STARTER_DIR=%APP_STARTER_PACKAGE:.=\%
REM ===
REM === Clean and make bin dir ===
rd /s /q «%BIN_DIR%»
md «%BIN_DIR%»
REM ===
REM === Compile ===
«%JAVA_HOME%\bin\java» -version
«%JAVA_HOME%\bin\javac» ^
-d «%BIN_DIR%» ^
-sourcepath %SRC_DIR% ^
«%SRC_DIR%\%APP_STARTER%.java»
if errorlevel 1 (
echo compile:error
exit /B 1
)
echo compile:success
REM ===
REM === Run ===
REM «%JAVA_HOME%\bin\java» -cp «%BIN_DIR%» %APP_STARTER_PACKAGE%.%APP_STARTER%
«%JAVA_HOME%\bin\java» -cp «%BIN_DIR%» %APP_STARTER%
if errorlevel 1 (
echo runtime:error
exit /B 1
)
echo runtime:success
REM ===

Источник

Код Java в bat-файле

Маленькая забавность о том, как использовать все возможности Java в обычных bat-скриптах. Или сделать скриптовый язык из Java.

Далее рассказан простой способ скомпилировать и запустить Java код, который находится внутри bat-файла.

Навеяно статьёй Код С# в bat-файле. Я реализовал тоже самое для Java. Только я не стал делать поиск папки в которую установлен JDK, т.е. в переменной %PATH% должен быть указан путь к %JDK_HOME%/bin

Не буду долго томить, вот код bat файла Test.bat:

/* copy %0 .\%~n0.java javac %~n0.java cls java %~n0 del %~n0.class del %~n0.java exit */ public class Test < public static void main(String[] args) throws Exception < System.out.println("Hello world from Java!"); System.out.println("Press Enter to exit"); System.in.read(); >>

Выполнив полученный батник увидим:

  1. Сначала работает bat-интерпретатор. Первую строчку скрипта (комментарий Java /*) он не понимает и выдает ошибку. Но не страшно, это чисто визуальное неудобство.
  2. Затем мы копируем бат файл в файл с таким же именем но уже с расширением *.java, иначе компилятор javac откажется его компилировать. Выражение %~n0 вернёт имя файла без расширения: параметр 0 всегда имя файла а квалификатор n только имя файла. Следите за названием файла, поскольку имя *.java файла должно соответствовать имени класса внутри него.
  3. Далее компилируем консольным компилятором javac который в качестве аргумента принимает путь к файлу с исходником. В нашем случае исходник находится в теле bat-файла (строки 10–18). Текст bat-команд игнорируется, как комментарий (строки 1 и 9).
  4. После работы компилятора, получаем class файл, который запускаем (предварительно подчистив экран командой cls) и удаляем после завершения его работы.
  5. Работа bat-интерпретатора заканчивается на 8 строке (exit).

Если есть трудности с синтаксисом bat скриптов могу посоветовать хорошую статью.

Это был пример, я использую ещё немного улучшенный вариант bat файла. В случае ошибок компиляции он их выведет. Ещё также он добавит в CLASSPATH все *.jar файлы которые он найдёт рядом.

/* @echo off copy %0 .\%~n0.java cls javac -classpath CLASSPATH=.\*.jar;.\lib\*.jar %~n0.java if %ERRORLEVEL% equ 0 ( cls java %~n0 del %~n0.class ) del %~n0.java exit */ public class Test < public static void main(String[] args) throws Exception < System.out.println("Hello world from Java!"); System.out.println("Press Enter to exit. "); System.in.read(); >>

Целесообразность, скорее just for fun. Но иногда бывает удобнее выслать новичку один файл, уже с прописанной строчкой компиляции, который нужно просто выполнить.

UPD

Узнал о библиотеке Launch4j которая может превратить ваш jar файл в обычный запускаемый exe

Источник

Читайте также:  Java sql connection test connection
Оцените статью