最近开始学习java
教程中用的是dos命令行环境,
每次都要输入一大堆命令
比较繁琐
(据说命令行方式是新手必须要掌握的,但我认为重复输入那几个命令是万万没有必要的)
所以就写了个批处理来完成这些重复的工作
使用前提,你的java环境已经正常配置,代码已经能正常编译运行
目录中的文件 1.java 是默认示例文件
run.bat 就是我们要用的批处理 该bat文件可以被外部程序(vbs,dos,IDE,notepad++等)调用
如果你的java代码中不含有package的代码 可以直接使用makeRun.bat进行编译运行
而有package代码时,run.bat会调用makeRunPack.bat
我个人是用notepad++调用run.bat进行编译的, run.bat将自动判断你的代码中有没有package
具体操作是
在notepad++菜单栏 点击 运行 ,运行,路径选择,找到run.bat,保存,顺便设置快捷键 alt+z
其他问题请打开bat查看,有使用问题请与我联系
本人java新手,欢迎一起交流.QQ:102351263
==============================================================================================
run.bat代码如下
@echo off
::说明:javac自动编译运行批处理程序
::可自行修改(*.java)处的路径,支持与run.bat同级或其下级目录路径,或绝对路径
::支持外部程序(比如vbs,bat,notapad++)等调用本程序 run.bat
::本程序run.bat会调用下级文件makeRun.bat或makeRunPack.bat
::若不想显示包的路径,把[%%f &&]改成 [%%f >nul &&] 就可以了 (不包括方框)
cd /d "%~dp0"
for %%f in (*.java) do find /i "package" %%f && goto pack || goto Nopack
:Nopack
makeRun.bat
:pack
makeRunPack.bat
makeRun代码如下:
@echo off
rem 说明:java文件自动编译并运行的批处理
rem 注:主类名默认是Demo 可以自己改
rem 支持外部程序(vbs,IDE,notepad++等)调用
cd /d "%~dp0"
:start
echo.
echo 正在编译,请稍等...............................................................
echo.
javac *.java
if errorlevel 1 goto err
echo.
echo 编译成功,class文件运行结果:
echo.
java Demo
echo.
echo 按任意键重新编译并运行........................................................
pause>nul
echo 清屏...
cls
goto start
:err
echo.
echo 请修改代码中的错误! 然后按任意键重新编译...................................err
pause>nul
goto start
makeRunPack.bat代码如下:
@echo off
rem 说明:我是java文件自动编译并运行的批处理
rem 类名默认是Demo ,包名默认是pack1可以自己改
rem 支持外部程序(vbs.IDE.notepad++等)调用
cd /d "%~dp0"
:start
echo.
echo 正在编译,请稍等...............................................................
echo.
javac -d . *.java
if errorlevel 1 goto err
echo.
echo 编译成功,class文件运行结果:
echo.
java pack1.Demo
echo.
echo 按任意键重新编译并运行........................................................
pause>nul
echo 清屏...
cls
goto start
:err
echo.
echo 请修改代码中的错误!按任意键继续编译.......................................err
pause>nul
goto start
1.java代码如下
class Demo
{
public static void main(String[] args)
{
for(int x=1;x<=9;x++)
{
for(int y=1 ;y<=x;y++)
{
if((x==3&&y==2)||(x==4&&y==2))
{
System.out.print(y+"*"+x+"="+x*y+" ");
}
else
{
System.out.print(y+"*"+x+"="+x*y+" ");
}
}
System.out.println();
}
System.out.println("99乘法表");
}
}
运行结果示例如下:
=============================================================================
打包上传到115网盘,
http://115.com/file/dnri172q#
java自动编译批处理.rar