【问题标题】:Creating a batch file, for simple javac and java command execution创建一个批处理文件,用于简单的 javac 和 java 命令执行
【发布时间】:2011-05-27 03:40:03
【问题描述】:

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

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

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

  1. 打开cmd
  2. javac Main.java
  3. java 主要

我的文件将驻留在我所有的 .java 旁边,所以我假设我不需要给出明确的路径。

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

  1. 打开文本编辑器
  2. 写一段代码打开cmd(不知道怎么弄)
  3. echo javac Main.java(这对我来说仍然是一个模糊的概念)
  4. echo java Main

另存为:name.bat

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

【问题讨论】:

  • 感谢 Andrew,我尝试制作这些缩进,但效果不佳 :(.

标签: java batch-file cmd executable javac


【解决方案1】:
  1. 打开记事本

  2. @echo off
    
    javac Main.java
    
    java Main
    

3.saveAs blahblah.bat

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

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

【讨论】:

    【解决方案2】:

    你希望在你的 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
    

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

      • 是的,那么如何制作一个将打开 cmd 提示符的 .bat 编译我的代码并运行具有 main(String[] args) 方法的 Main.java,谢谢!
      • 1) 打开记事本类型:javac Main.java java Main 2) 将此文件另存为 something.bat 3) 将此文件 (something.bat) 放在与 Main.java 相同的目录中,然后加倍单击something.bat(现在应该与您的 Main.java 位于同一目录中
      • 如果你的 Main.java 需要输入 args 那么 1) java Main arg1 arg2 arg3
      • 嗨,我的回答是一样的:Nirmal-thInk beYond。
      【解决方案4】:

      创建一个纯文本文件(使用记事本),然后在命令提示符下键入您将用于运行 Java 文件的确切行。然后将扩展名更改为 .bat 即可。

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

      我推荐一个用于 javac 的文件,一个用于 java 的文件,以便您在出现问题时进行故障排除。

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

      【讨论】:

        【解决方案5】:
        1. 打开记事本

        2. 输入以下内容:

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

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

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

        【讨论】:

          【解决方案6】:

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

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

          我只是将它保存为 run-java.bat 并将其放在 System32 目录中,这样我就可以在任何我想使用的地方使用该脚本。

          要使用我会执行的命令:

          run-java filename
          

          它将编译并运行该文件。 请确保在键入文件名时省略 .java 扩展名(即使您键入文件名也可以使其工作,但我是批处理新手,不知道该怎么做但是)。

          【讨论】:

            【解决方案7】:

            我的机器上没有安装 JDK 来验证这一点,但这里有一些东西可以帮助您开始

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

            【讨论】:

              【解决方案8】:

              我要补充的唯一另一件事是让它更灵活一点。大多数时候,我都会有一个我想运行的简单的 java 文件——Main.java、Simple.java、Example.java 或 Playground.java(你懂的)。

              我使用以下内容删除了一个 javac 和相应的 java。

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

              %~n1 获取传递给批处理文件的第一个参数的文件名(无扩展名)。所以这样我可以使用 tab 完成来运行它,而不必担心它与 .class 或 .java 扩展名一起使用。

              所以下面两个都会有同样的结果:

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

              没有 100% 回答原始发帖人的问题,但我认为对于简单的 javac/java 程序来说,这是一个很好的下一步/演进。

              【讨论】:

                【解决方案9】:

                我也遇到过类似的情况,我需要一个脚本来处理 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
                

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

                【讨论】:

                  【解决方案10】:
                  @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
                  

                  【讨论】:

                    【解决方案11】:

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

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

                    【讨论】:

                    • 这不能回答所提出的问题
                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-12-15
                    • 2021-08-13
                    • 1970-01-01
                    相关资源
                    最近更新 更多