Создание командного файла для простого выполнения команд javac и java - PullRequest
8 голосов
/ 27 мая 2011

Это действительно простая вещь, но я не могу разобраться с этим. Я просмотрел множество постов StackOverFlow, а также в Интернете.

Моя цель - создать .bat, который откроет cmd и запустит мой Main.java в командной строке. Легко, не правда ли, но я запутался в том, как?

Ниже я пишу шаги, которые должен выполнить мой пакетный файл

  1. открыть cmd
  2. javac Main.java
  3. Java Main

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

Мое понимание до сих пор по исследованиям:

  1. открыть текстовый редактор
  2. написать код для открытия cmd (который я не уверен, как)
  3. echo javac Main.java (что для меня все еще нечеткая концепция)
  4. эхо Ява Main

Сохранить как: name.bat

Любая помощь будет оценена. Спасибо.

Ответы [ 11 ]

16 голосов
/ 27 мая 2011
  1. открытый блокнот

  2. запись

    @echo off
    
    javac Main.java
    
    java Main
    

3.saveAs blahblah.bat

убедитесь, что Main.java находится в вашем пакетном файле, а путь java указан в env.переменная

4.двойной щелчок на командном файле, нет необходимости открывать cmd явно, tt откроется при выполнении .bat

5 голосов
/ 23 сентября 2013

вы хотите эти четыре строки кода в вашем Run.bat:

@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
1 голос
/ 24 мая 2012
  1. Открыть Блокнот

  2. Введите следующее:

    javac *
    java Main
    
  3. SaveAs Main.bat или любое другое имявы хотите использовать для пакетного файла

Убедитесь, что Main.java находится в той же папке вместе с вашим пакетным файлом

Дважды щелкните по пакетному файлу для запускафайл Main.java

1 голос
/ 27 мая 2011

Создайте простой текстовый файл (используя блокнот) и введите точную строку, которую вы использовали бы для запуска вашего Java-файла из командной строки.Затем измените расширение на .bat, и все готово.

Двойной щелчок по этому файлу запустит вашу Java-программу.

Я рекомендую один файл для javac, другой для java, чтобы вы могли устранить неполадкиесли что-то не так.

  • Убедитесь, что на вашем пути тоже есть java. IE, набирающий java в окнах Dos, когда в вашем рабочем пространстве java должно появиться сообщение о версии java.Если java не находится на вашем пути, пакетный файл не будет работать, если вы не используете абсолютный путь к двоичному файлу java.
1 голос
/ 27 мая 2011

Я понимаю только ваш вопрос?Вам нужен файл .bat для компиляции и выполнения файлов классов Java?

, если это файл .bat.Вы можете просто дважды щелкнуть.

и в вашем .bat файле вам просто нужно javac Main.java ((убедитесь, что ваша летучая мышь имеет путь к ur Main.java) java Main

Если вы хотите, чтобы эхо-компиляцияПредупреждения / заявления, для этого нужно что-то другое. Но поскольку вы хотите, чтобы это было автоматизировано, возможно, вам это в конечном итоге не понадобится.

0 голосов
/ 07 декабря 2016

Я только что сделал простой пакетный скрипт, который принимает имя файла в качестве аргумента, компилирует и запускает файл Java одной командой. Вот код:

@echo off
set arg1=%1
shift
javac -cp . %arg1%.java
java %arg1%
pause

Я просто сохранил это как run-java.bat и поместил в каталог System32, чтобы я мог использовать скрипт из любого места.

Чтобы использовать команду, я бы сделал:

run-java filename

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

0 голосов
/ 04 сентября 2016
@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
0 голосов
/ 07 июля 2015

Я также столкнулся с подобной ситуацией, когда мне нужен был скрипт, который может позаботиться о javac, а затем java (ing) моей java-программы.Итак, я придумал этот BATCH-скрипт.

::  @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 $1}' > old
    set /p oldHash=<old
    copy "%1" "versions\%oldHash%.java"

    :inner_loop
    :: Get NEW HASH of the same file
    md5sum "%1" | gawk '{print $1}' > 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

Вышеупомянутый пакетный скрипт проверит файл на наличие любых изменений и скомпилирует, если какие-либо изменения будут сделаны, вы можете настроить его для компиляции, когда захотите.Удачного кодирования:)

0 голосов
/ 23 сентября 2013

Единственное, что я хотел бы добавить, - сделать его немного более гибким. В большинстве случаев у меня будет банальный java-файл, который я хочу запустить как - Main.java, Simple.java, Example.java или Playground.java (вы поняли).

Я использую следующее, чтобы убрать javac и соответствующую java.

@echo off
javac %~n1.java
java %~n1

% ~ n1 получает имя файла (без расширения) первого аргумента, переданного в пакетный файл. Таким образом, я могу запустить его, используя завершение табуляции, и не беспокоиться о том, что он работает с расширением .class или .java.

Таким образом, оба следующих результата будут иметь одинаковый результат:

run.bat Main.class
and
run.bat Main.java

Не дает 100% ответа на оригинальный вопрос об авторах, но я думаю, что это хороший следующий шаг / эволюция для простых программ javac / java.

0 голосов
/ 01 августа 2013

эй, я думаю, что вы просто копируете свои скомпилированные файлы классов, копируете папку jre и делаете следующее как содержимое пакетного файла, сохраняете все вместе на любой машине с Windows и просто дважды нажимаете

@echo
setpath d:\jre
d:
cd myprogfolder
java myprogram
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...