创建一个批处理文件,用于简单的javac和java命令执行
这是一件非常简单的事情,但我无法理解它。我已经看过很多关于StackOverFlow的帖子,以及在互联网上 我的目标是创建一个.bat,它将打开cmd并在命令提示符下执行我的Main.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
任何帮助都将不胜感激。谢谢。我只理解你的问题吗? 您需要.bat文件来编译和执行java类文件吗 如果是.bat文件。 你可以双击 在你的.bat文件中,你只需要 javac Main.java((确保您的bat具有到ur Main.java的路径) 爪哇岛 如果要回显编译警告/语句,则需要其他内容。 但是,由于您希望自动化,因此可能最终不需要这样做。创建一个纯文本文件(使用记事本)并在命令提示符下键入运行Java文件所需的准确行。然后将扩展名更改为.bat,就完成了 双击此文件将运行java程序 我推荐一个文件用于javac,一个文件用于java,这样您就可以在出现任何错误时进行故障排除
- 确保java也在您的路径中..即在您的java工作区中在Dos窗口中键入java时,应显示java版本消息。如果java不在您的路径中,批处理文件将无法工作,除非您使用java二进制文件的绝对路径
%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
javac *
java Main
双击批处理文件以运行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