Как запустить 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 как использовать show () и hide () с задержкой ()?
- 1 Как я могу сохранить hourOfDay и минуты из timePickerDialog, чтобы сравнить его с какой-то другой переменной?
- 1 Как я могу цикл через кучу кнопок, чтобы уменьшить код?
- 1 Что означает «поддержка» в Android?
- 0 Показать результаты из выпадающего списка, затем клонировать и добавить еще один выбор
- 1 Издевательское личное поле класса
- 1 Android Studio — сбой службы после того, как WebView использует файл: /// для отображения локального веб-сайта
- 0 Не удается получить .focus () для фокусировки на входе с идентификатором в Chrome, Safari и FF
- 1 При использовании FileOpenPicker, как открыть экран «Выбор приложения», как в приложении OneDrive?
- 0 Spring boot schema.sql не работает с файлом mysqldump
- 1 Лучший способ написать для цикла при возможности доступа к элементам в контейнере Python
- 1 ASP SQL Update страницы просмотров при щелчках ссылок
- 0 Оценка постфиксного выражения. pop () возвращает неверные значения для вычисления функции
- 1 Загрузка элементов из массива в Angular 2
- 0 Неожиданное завершение выражения ng-keypress в angularjs
- 1 Адаптирование spymemcached Java-клиента GetFuture к Guava ListenableFuture
- 0 Ошибка «Необходимо указать поле grant_type» при получении токена Oauth2
- 1 Определить задачу Checkstyle с плагином Android Gradle 3.4.0
- 0 Ошибка на Openshift
- 0 Как сделать снимок конечного результата после удаления элемента на изображение с помощью JavaScript?
- 1 POI API — ссылка на шрифт по пути
- 1 Knexjs PgSQL JSON запрос
- 0 Выбранное значение для клонированного элемента не работает должным образом
- 0 PHP пока петли в то время как петли не работают
- 0 Как скрыть URL при печати страницы с помощью JavaScript или JQuery
- 1 Key Listener не работает?
- 1 Не удается изменить права доступа к файлам Java
- 0 Добавление анимации слайдов для повторения
- 0 преобразование текста: полная ширина не работает в Опере — HTML
- 1 проверить, равен ли элемент списка любому другому элементу в списке, используя цикл for
- 0 Форма размещения статического сайта в другом домене
- 0 Добавить или удалить класс Css, когда входное значение равно нулю или не равно нулю
- 1 Java-сервлеты: проверка XML на xsd
- 0 Поиск в MySQL с использованием JOIN или коррелированного подзапроса с TEMPORARY TABLE
- 0 getElementsByName какое имя?
- 0 Что я вернусь к удаленному методу JQuery?
- 1 Struts2 — пересылка по аннотации с динамическим параметром
- 1 Загрузите текстовый файл cookie в Python
- 0 Как создать таблицу «соединения» с информацией о двух отдельных таблицах в MySQL?
- 1 Полимер 2.0 Edge Issue
- 0 Причудливая шкатулка с URL
- 0 Угловой запрос http
- 0 Выдвижной ящик плохой FPS на мобильном телефоне
- 0 Google Map Angular JS
- 1 Как расширить несколько миксинов в одном элементе Polymer?
- 0 Выпадающая проблема — приложение для мобильного браузера на IOS 7
- 1 Строка рейтинга показывает половину звезды, несмотря на шаг установки в 1
- 0 CSS негативное фоновое изображение
- 0 Определите, является ли изображение векторным или растровым с помощью PHP
- 1 Печать / предупреждение для нулевых значений с именем столбца и счетчиком
Код 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(); >>
Выполнив полученный батник увидим:
- Сначала работает bat-интерпретатор. Первую строчку скрипта (комментарий Java /*) он не понимает и выдает ошибку. Но не страшно, это чисто визуальное неудобство.
- Затем мы копируем бат файл в файл с таким же именем но уже с расширением *.java, иначе компилятор javac откажется его компилировать. Выражение %~n0 вернёт имя файла без расширения: параметр 0 всегда имя файла а квалификатор n только имя файла. Следите за названием файла, поскольку имя *.java файла должно соответствовать имени класса внутри него.
- Далее компилируем консольным компилятором javac который в качестве аргумента принимает путь к файлу с исходником. В нашем случае исходник находится в теле bat-файла (строки 10–18). Текст bat-команд игнорируется, как комментарий (строки 1 и 9).
- После работы компилятора, получаем class файл, который запускаем (предварительно подчистив экран командой cls) и удаляем после завершения его работы.
- Работа 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-приложение по .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 Объект, два выпадающих списка, ng-options и привязка значения
- 0 SDL_Surface отказывается от блиц
- 1 Понимание поведения тензорного потока при извлечении данных из двух разных источников данных с помощью набора данных API
- 0 Находите область дат из MySQL эффективно
- 0 PHP парсинг XML
- 0 Как обновить страницу и добавить параметр URL?
- 1 Сборка приложения Flutter не выполняется, нужна помощь для устранения зависимостей
- 0 Задать недопустимое поле формы / поля ввода для сервера $ asyncValidators
- 0 Как я могу автоматически обновлять месяцы?
- 0 Как написать предложение WHERE с Datetime, используя Sequelize в Node
- 1 найти индекс значений, содержащих ключевое слово в массиве python [duplicate]
- 0 Обновление выпадающего списка из кода с использованием Javascript / JQuery
- 0 sql выбрать диапазон дат в следующем году
- 0 угловой JS NG-повтор в одном элементе textarea
- 0 Изменить цвет метки на активном поле ввода
- 0 многократная загрузка путей сохранения в базе данных не работает
- 1 Android — не удается обнаружить QR-код с библиотекой zxing
- 1 Как изменить значение логического значения при нажатии кнопки JButton
- 1 Ошибка: не указан путь к программе JavaScript
- 0 Выполнение запроса MySQL с использованием Python MySQL?
- 1 Исключение в потоке «main» java.awt.AWTError: Вспомогательная технология не найдена: ошибка com.sun.java.accessibility.AccessBridge
- 0 Как вставить новую строку в таблицу через angularjs?
- 0 Вектор подмножеств
- 0 Специальная функция в сообщении об ошибке
- 0 PHP поймать должным образом
- 1 Может ли использование обнуляемых структур улучшить производительность?
- 0 создание пользовательской базы данных в GAE Java
- 0 Ошибка: недопустимое значение для атрибута x = «NaN» в angularJS nvd3-multi-bar-chart
- 1 Как передать только сообщения об ошибках из модели в контроллер (Mongoose)?
- 0 Google Places хранит результаты в Mysql с PHP
- 1 Как получить текущее имя файла из функции внутри другого файла?
- 0 Значения по умолчанию по запросу переменной
- 0 Скрыть родительский вид при отображении вложенных представлений
- 1 Как сгруппировать по дате с пандами?
- 1 Pandas_Merge два больших набора данных
- 0 Вставить несколько строк в laravel с полезной нагрузкой JSON
- 0 Как обновить набор указателей с ++?
- 0 ng-repeat приводит к неправильному положению якоря
- 0 SQL-запрос для поиска общих элементов в списках столбцов между таблицей и указанными критериями?
- 1 Использование условия в LINQ
- 0 Проблема приведения лямбда в std :: function
- 0 Наилучшая практика для включения скриптов в угловые шаблоны?
- 1 Threejs применяет отсечение к определенной области объекта
- 0 Чтобы получить экземпляр li с выбранным значением в его div, используя JQuery
- 0 Получение данных формы с помощью PHP
- 0 Jquery не воспроизводит последовательность видео
- 1 Как я могу обновить переменную внутри целого класса kotlin с помощью метода, а затем получить его обновленным с помощью другого вызова метода
- 0 Как связать событие изменения JQuery для динамических таблиц / строк?
- 1 Каковы лучшие практики для написания модульных тестов с помощью фреймворков