这是一件非常简单的事情,但我无法理解。我已经看了很多StackOverFlow的帖子以及互联网上的帖子。
我的目标是创建一个.bat,它将打开cmd并在命令提示符下执行我的Main.java。这很简单,不是吗,但我一直困惑于怎么做?
下面我正在写我的批处理文件应该执行的步骤
- 打开cmd
- javac Main.java
- java Main
我的文件将位于我所有的.java旁边,所以我认为我不需要给出明确的路径。
我迄今为止通过研究的理解:
- 打开文本编辑器
- 写一个代码打开cmd(我不确定如何打开)
- echo javac Main.java(对我来说这仍然是一个模糊的概念)
- echojavaMain
另存为:name.bat
任何帮助都将不胜感激。非常感谢。
-
打开记事本
-
写入
@echo off javac Main.java java Main
3.saveAs等等.bat
确保Main.java与您的批处理文件驻留在一起,并且在env中设置了java路径。可变
4。双击批处理文件,无需显式打开cmd tt将在.bat执行上打开自己
您希望在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
我只理解你的问题吗?您需要.bat文件来编译和执行java类文件吗?
如果是.bat文件。你可以双击。
在.bat文件中,您只需要javacMain.java((确保你的bat有urMain.java的路径)java主
如果要回显编译警告/语句,则需要其他内容。但既然你想自动化,也许你最终就不需要了。
创建一个纯文本文件(使用记事本),并在命令提示符下键入用于运行Java文件的确切行。然后将扩展名改为.bat,就完成了。
双击该文件将运行您的java程序。
我推荐一个用于javac的文件,一个用于java的文件,这样您就可以在出现任何错误时进行故障排除。
- 确保java也在你的路径上。。在java工作区中,在Dos窗口中键入java的IE应该会显示java版本消息。如果java不在您的路径中,那么批处理文件将无法工作,除非您使用java二进制文件的绝对路径
-
打开记事本
-
键入以下内容:
javac * java Main
-
SaveAs Main.bat或您希望用于批处理文件的任何名称
确保Main.java与您的批处理文件位于同一文件夹中
双击批处理文件以运行Main.java文件
我刚刚制作了一个以文件名为参数的简单批处理脚本,用一个命令编译并运行java文件。这是代码:
@echo off
set arg1=%1
shift
javac -cp . %arg1%.java
java %arg1%
pause
我只是将其保存为run-java.bat,并将其放在System32目录中,这样我就可以在任何地方使用该脚本。
要使用我要做的命令:
run-java filename
它将编译并运行该文件只要确保在键入文件名时省略.java扩展名(即使键入文件名,也可以使其工作,但我是批处理新手,还不知道如何执行)。
我的机器上没有安装JDK来验证这一点,但这里有一些东西可以让你开始使用
%CLASSPATH%=C:Program FilesJavajdk1.6bin rem or whatever your path is
START %CLASSPATH%javac Main.java
START %CLASSPATH%java Main
我唯一要添加的另一件事是使它更加灵活。大多数时候,我会有一个琐碎的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程序的一个很好的下一步/进化。
我也遇到过类似的情况,我需要一个脚本来处理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
上面的批处理脚本将检查文件是否有任何更改并进行编译。如果有任何更改,您可以随时调整它进行编译。快乐编码:)
@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
嘿,我认为你只需复制编译后的类文件,复制jre文件夹,并将以下内容作为批处理文件的内容,将所有窗口机器保存在一起,然后双击
@echo
setpath d:jre
d:
cd myprogfolder
java myprogram