Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个批处理文件,用于简单的javac和java命令执行_Java_Batch File_Cmd_Executable_Javac - Fatal编程技术网

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

创建一个批处理文件,用于简单的javac和java命令执行,java,batch-file,cmd,executable,javac,Java,Batch File,Cmd,Executable,Javac,这是一件非常简单的事情,但我无法理解它。我已经看过很多关于StackOverFlow的帖子,以及在互联网上 我的目标是创建一个.bat,它将打开cmd并在命令提示符下执行我的Main.java。很容易,不是吗,但我不知道怎么做 下面我将编写批处理文件应该执行的步骤 打开命令 javac Main.java 爪哇岛 我的文件将位于所有.java文件的旁边,因此我假设不需要给出显式路径 到目前为止,我的研究理解是: 打开文本编辑器 写一个代码来打开cmd(我不知道如何打开) echo javac M

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

我的目标是创建一个.bat,它将打开cmd并在命令提示符下执行我的Main.java。很容易,不是吗,但我不知道怎么做

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

  • 打开命令
  • javac Main.java
  • 爪哇岛
  • 我的文件将位于所有.java文件的旁边,因此我假设不需要给出显式路径

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

  • 打开文本编辑器
  • 写一个代码来打开cmd(我不知道如何打开)
  • echo javac Main.java(对我来说这仍然是一个模糊的概念)
  • echo java Main
  • 另存为:name.bat


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

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

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

    在你的.bat文件中,你只需要 javac Main.java((确保您的bat具有到ur Main.java的路径) 爪哇岛

    如果要回显编译警告/语句,则需要其他内容。 但是,由于您希望自动化,因此可能最终不需要这样做。

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

    双击此文件将运行java程序

    我推荐一个文件用于javac,一个文件用于java,这样您就可以在出现任何错误时进行故障排除

    • 确保java也在您的路径中..即在您的java工作区中在Dos窗口中键入java时,应显示java版本消息。如果java不在您的路径中,批处理文件将无法工作,除非您使用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
    
  • 打开记事本

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

    确保Main.java与批处理文件一起驻留,并且在env.variable中设置了java路径

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

  • 打开记事本

  • 输入以下内容:

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

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


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

    嘿,我认为您只需复制编译的类文件和jre文件夹,并将以下内容作为批处理文件的内容,将所有windows计算机保存在一起,然后双击即可

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

    在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
    

    我唯一要添加的另一件事是让它更灵活一些。大多数时候,我会有一个简单的java文件,我想像-Main.java、Simple.java、Example.java或playway.java一样运行(你明白了)

    我使用下面的代码删除javac和相应的java

    @echo off
    javac %~n1.java
    java %~n1
    
    %n1获取传递给批处理文件的第一个参数的文件名(sans扩展名)。因此,通过这种方式,我可以使用制表符完成来运行它,而不必担心它使用.class或.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 $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
    
    :@作者鲁丁·梅农
    ::创建于2015年6月9日
    ::
    ::Auto-Concrete是一个构建工具,用于监视下的文件
    ::检查任何更改,并编译或运行相同的更改一次
    ::它变了。
    ::  
    ::  ========================================
    ::md5sum和gawk程序是此脚本的先决条件。
    ::请在运行auto concrete之前下载它们。
    ::  ========================================
    ::  
    ::快乐的编码。。。
    @回音
    ::如果缺少文件名
    如果[%1]eq[]转到用法\u消息
    ::设置cmd窗口名称
    标题:自动混凝土v0.2
    cd版本
    如果%errorlevel%NEQ 0(
    echo创建版本目录
    mkdir版本
    cd版本
    )
    光盘
    javac“%1”
    :循环
    ::获取文件的旧哈希
    md5sum“%1”| gawk'{print$1}'>旧版
    set/p oldHash=new
    set/p newHash=nul
    转到内环
    )
    ::一旦它们不同,编译源文件
    ::然后再重复一遍
    回声。
    回显===========%1已在%DATE%和%TIME%更改===========
    回声。
    javac“%1”
    转到环路
    :用法\u消息
    echo用法:auto-concrete FILENAME.java
    

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

    我刚刚制作了一个简单的批处理脚本,它以文件名作为参数,只需一个命令即可编译并运行java文件。代码如下:

    @echo off
    set arg1=%1
    shift
    javac -cp . %arg1%.java
    java %arg1%
    pause
    
    我只是将其保存为run-java.bat并将其放在System32目录中,这样我就可以在任何地方使用该脚本

    要使用该命令,我将执行以下操作:

    run-java filename
    

    它将编译并运行该文件只要确保在键入文件名时省略.java扩展名即可(即使键入文件名,也可以使其正常工作,但我是批处理新手,还不知道如何执行该操作)。

    没错,那么如何制作一个.bat,它将打开cmd提示符编译我的代码并运行具有Main(String[]args)方法的Main.java,非常感谢。1) 打开记事本类型:javac Main.java java Main 2)将此文件另存为something.bat 3)将此文件(something.bat)放在与Main.java相同的目录中,然后双击something.bat(现在应该在
    run-java filename