Создание пакетного файла для простого выполнения команд javac и java
Это действительно простая вещь, но я не могу обойти ее. Я просмотрел много сообщений StackOverFlow, а также в интернете.
моя цель-создать .bat, который откроет cmd и выполнит мой Main.Java в командной строке. Легко, не так ли, но я запутался в том, как?
ниже я пишу шаги, которые должен выполнить мой пакетный файл
- открыть cmd
- javac и главный.java
- java Главная
мой файл будет находиться рядом со всеми моими .java поэтому я предполагаю, что мне не нужно давать явный путь.
мое понимание до сих пор исследования:
- открыть редактор текста
- напишите код, чтобы открыть cmd (который я не уверен, как)
- echo javac Main.java (которая все еще нечеткая концепция для меня)
- echo java Main
Сохранить как: имя.летучая мышь!--1-->
любая помощь будет оценили. Благодарить вы.
11 ответов
открываем блокнотом
-
написать
@echo off javac Main.java java Main
3.сохранить как бла-бла.летучая мышь!--4-->
убедитесь, что главный.java находится в вашем пакетном файле, а путь java установлен в env. переменная
4 . дважды щелкните пакетный файл, нет необходимости открывать cmd явно tt откроется сам .выполнение летучей мыши
вы хотите, чтобы эти четыре строки кода в ваш бег.летучая мышь:
@echo off //this makes it so you have an empty cmd window on startup
javac Main.java //this compiles the .java into a .class
java Main // this runs the .class file
pause //this prevents the window from instantly closing after program end
Я понимаю только ваш вопрос? Тебе нужно.файл bat для компиляции и выполнения файлов классов java?
Если это a .Bat-файл. вы можете просто дважды щелкнуть.
и в вашем .bat файл, вам просто нужно javac и главный.java ((убедитесь, что ваша летучая мышь имеет путь к ur Main.Ява) java Main
Если вы хотите, чтобы эхо-предупреждения компиляции/заявления, что нужно что-то еще. Но поскольку вы хотите, чтобы это было автоматизировано, возможно, Вам в конечном итоге не нужно что.
создайте текстовый файл (с помощью блокнота) и введите точную строку, которую вы бы использовали для запуска файла Java с помощью командной строки. Затем измените расширение на .с битой покончено.
двойной щелчок по этому файлу запустит вашу программу java.
Я рекомендую один файл для javac, один для java, чтобы вы могли устранить неполадки, если что-то не так.
- убедитесь, что Java в Path, тоже.. IE ввод java в Dos-окнах, когда в рабочей области java должно появиться сообщение версии java. Если java нет в вашем пути, пакетный файл не будет работать, если вы не используете absolut path для двоичного файла java.
Открываем Блокнотом
-
введите следующее:
javac * java Main
Главная "Сохранить Как".bat или любое другое имя, которое вы хотите использовать для пакетного файла
убедитесь, что главный.java находится в той же папке вместе с вашим пакетным файлом
дважды щелкните пакетный файл, чтобы запустить Main.файл java
У меня нет JDK, установленного на моей машине, чтобы проверить это, но вот что-то, чтобы вы начали с
%CLASSPATH%=C:\Program Files\Java\jdk1.6\bin rem or whatever your path is
START %CLASSPATH%\javac Main.java
START %CLASSPATH%\java Main
единственное, что я хотел бы добавить, это сделать его немного более гибким. В большинстве случаев у меня будет тривиальный java - файл, который я хочу запустить как-Main.java, просто.java, например.java, или игровая площадка.java (вы поняли идею).
Я использую следующее, чтобы вычеркнуть javac и соответствующую java.
@echo off
javac %~n1.java
java %~n1
%~n1 получает имя файла (без расширения) первого аргумента, переданного в пакетный файл. Таким образом, я могу запустить его с помощью Tab completion и не беспокоиться об этом работа с любым из них .класс или. расширение java.
Так что следующий результат будет таким же:
run.bat Main.class
and
run.bat Main.java
не 100% отвечает на оригинальный вопрос плакатов, но я думаю, что это хороший следующий шаг/эволюция для простых программ javac/java.
Я также столкнулся с аналогичной ситуацией, когда мне нужен скрипт, который может позаботиться о javac, а затем java(ing) моя java-программа. Итак, я придумал этот пакетный сценарий.
:: @author Rudhin Menon
:: Created on 09/06/2015
::
:: Auto-Concrete is a build tool, which monitor the file under
:: scrutiny for any changes, and compiles or runs the same once
:: it got changed.
::
:: ========================================
:: md5sum and gawk programs are prerequisites for this script.
:: Please download them before running auto-concrete.
:: ========================================
::
:: Happy coding ...
@echo off
:: if filename is missing
if [%1] EQU [] goto usage_message
:: Set cmd window name
title Auto-Concrete v0.2
cd versions
if %errorlevel% NEQ 0 (
echo creating versions directory
mkdir versions
cd versions
)
cd ..
javac "%1"
:loop
:: Get OLD HASH of file
md5sum "%1" | gawk '{print }' > old
set /p oldHash=<old
copy "%1" "versions\%oldHash%.java"
:inner_loop
:: Get NEW HASH of the same file
md5sum "%1" | gawk '{print }' > new
set /p newHash=<new
:: While OLD HASH and NEW HASH are the same
:: keep comparing OLD HASH and NEW HASH
if "%newHash%" EQU "%oldHash%" (
:: Take rest before proceeding
ping -w 200 0.0.0.0 >nul
goto inner_loop
)
:: Once they differ, compile the source file
:: and repeat everything again
echo.
echo ========= %1 changed on %DATE% at %TIME% ===========
echo.
javac "%1"
goto loop
:usage_message
echo Usage : auto-concrete FILENAME.java
выше пакетный скрипт будет проверять файл на любые изменения и компилировать если какие-либо изменения сделаны, вы можете настроить его для компиляции, когда захотите. Счастливое кодирование:)
@author MADMILK
@echo off
:getback1
set /p jump1=Do you want to compile? Write yes/no :
if %jump1% = yes
goto loop
if %jump1% = no
goto getback2
:: Important part here
:getback2
set /p jump2=Do you want to run a java program? Write yes/no :
if %jump2% = yes
goto loop2
if %jump2% = no
goto getback1
:: Make a folder anywhere what you want to use for scripts, for example i make one.
cd desktop
:: This is the folder where is gonna be your script(s)
mkdir My Scripts
cd My Scripts
title Java runner/compiler
echo REMEMBER! LOWER CASES AND UPPER CASES ARE IMPORTANT!
:loop
echo This is the java compiler program.
set /p jcVal=What java program do you want to compile? :
javac %jcVal%
:loop2
echo This is the java code runner program.
set /p javaVal=What java program do you want to run? :
java %javaVal%
pause >nul
echo Press NOTHING to leave
Я только что сделал простой пакетный скрипт, который принимает имя файла в качестве аргумента, компилирует и запускает файл java с одной командой. Вот код:
@echo off
set arg1=%1
shift
javac -cp . %arg1%.java
java %arg1%
pause
Я просто сохранил это как run-java.bat и поместите его в каталог System32, чтобы я мог использовать скрипт, где захочу.
использовать команду я бы сделал:
run-java filename
и он будет компилировать и запускать файл. просто не забудьте оставить .расширение java при вводе имени файла (вы можете заставить его работать даже при вводе имени файла, но я новичок в batch и еще не знаю, как это сделать).
Эй, я думаю, что вы просто скопируйте скомпилированные файлы классов и скопируйте папку jre и сделайте следующее в качестве содержимого пакетного файла и сохраните все вместе любую машину windows и просто дважды щелкните
@echo
setpath d:\jre
d:
cd myprogfolder
java myprogram