Создание пакетного файла для простого выполнения команд javac и java

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

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

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

  1. открыть cmd
  2. javac и главный.java
  3. java Главная

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

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

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

Сохранить как: имя.летучая мышь!--1-->

любая помощь будет оценили. Благодарить вы.

11 ответов


  1. открываем блокнотом

  2. написать

    @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.

  1. Открываем Блокнотом

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

    javac *
    java Main
    
  3. Главная "Сохранить Как".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