创建批处理文件,用于简单的javac和java命令执行

时间:2011-05-27 03:40:03

标签: java batch-file cmd executable javac

这是一件非常简单的事情,但我无法理解它。我看过很多StackOverFlow帖子以及互联网。

我的目标是创建一个.bat,它将打开cmd并将我的Main.java执行到命令提示符。容易不是,但我对如何感到困惑?

下面我正在编写我的批处理文件应该执行的步骤

  1. open cmd
  2. javac Main.java
  3. java Main
  4. 我的文件将驻留在我的所有.java旁边,所以我假设我不需要给出明确的路径。

    到目前为止,我对研究的理解是:

    1. 打开文本编辑器
    2. 编写代码以打开cmd(我不确定如何)
    3. echo javac Main.java(对我来说仍然是模糊的概念)
    4. echo java Main
    5. 另存为:name.bat

      任何帮助将不胜感激。谢谢。

11 个答案:

答案 0 :(得分:16)

  1. 打开记事本

  2. @echo off
    
    javac Main.java
    
    java Main
    
  3. 3.saveAs blahblah.bat

    确保Main.java与您的批处理文件一起存在,并且在env中设置了java路径。变量

    4。双击批处理文件,无需显式打开cmd tt将在.bat执行

    上打开

答案 1 :(得分:5)

你想在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

答案 2 :(得分:1)

我只理解你的问题吗? 你需要.bat文件来编译和执行java类文件吗?

如果是.bat文件。 你可以双击。

并在您的.bat文件中,您只需要 javac Main.java((确保你的bat有你的Main.java的路径) java Main

如果要回显编译警告/语句,则需要其他内容。 但是,既然如此,你希望自动化,也许你最终不需要它。

答案 3 :(得分:1)

创建纯文本文件(使用记事本)并使用命令提示符键入用于运行Java文件的确切行。然后将扩展名更改为.bat,您就完成了。

双击此文件将运行您的java程序。

我推荐一个用于javac的文件,一个用于java的文件,这样你就可以解决任何问题。

  • 确保java也在你的路径中。在你的java工作区中,IE在Dos窗口中输入java应该会显示java版本消息。如果java不在您的路径中,则除非使用绝对路径指向java二进制文件,否则批处理文件将不起作用。

答案 4 :(得分:1)

  1. 打开记事本

  2. 输入以下内容:

    javac *
    java Main
    
  3. SaveAs Main.bat或您希望用于批处理文件的任何名称

  4. 确保Main.java与批处理文件一起位于同一文件夹中

    双击批处理文件以运行Main.java文件

答案 5 :(得分:0)

我的计算机上没有安装JDK来验证这一点,但是这里有一些东西可以帮助您入门

%CLASSPATH%=C:\Program Files\Java\jdk1.6\bin rem or whatever your path is
START %CLASSPATH%\javac Main.java
START %CLASSPATH%\java Main

答案 6 :(得分:0)

我要补充的另一件事是让它更灵活。大多数情况下,我会想要运行一个简单的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程序来说这是一个很好的下一步/进化。

答案 7 :(得分:0)

我也遇到了类似的情况,我需要一个可以处理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

上面的批处理脚本将检查文件是否有任何更改,如果有任何更改则编译,您可以随时调整它以进行编译。快乐的编码:)

答案 8 :(得分:0)

@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

答案 9 :(得分:0)

我刚制作了一个简单的批处理脚本,它将文件名作为参数进行编译,并使用一个命令运行java文件。这是代码:

run-java filename

我刚刚将其保存为run-java.bat并将其放在System32目录中,以便我可以随时随地使用该脚本。

要使用我要执行的命令:

document.getElementById('something')

它将编译并运行该文件。 只需确保在输入文件名时省略.java扩展名(即使您输入文件名也可以使其工作但我是批处理新手并且不知道如何那样做。)

答案 10 :(得分:-2)

嘿我认为你只是复制你编译的类文件并复制jre文件夹并将以下内容作为批处理文件的内容并将所有windows机器保存在一起并只需双击

@echo
setpath d:\jre
d:
cd myprogfolder
java myprogram