BAT之简单java类启动器,通用执行当前目录java主程序

将以下代码保存为文本文件,并命名为【launcher.bat】

然后可以将launcher.bat放置到任何包含mian的Java文件目录,可以实现执行

实现的特性:

1、判断当前目录是否存在java文件、class文件

2、判断class文件的数目:

单个文件可以支持直接运行

多个文件支持选择运行

3、对用户输入做BUG控制

前提条件:JDK,并配置环境变量;编写的java文件的默认编码格式为UTF-8

@echo off
@title 自动运行java程序(通用版V1.0)
rem 自动寻找当前目录的java和class文件并自动实现编译和运行
rem Author:Weigeli
rem Time:2016-05-30

:start
rem 判断class文件是否存在
if exist .\*.class goto check
rem class不存在,再检测java文件是否存在
if exist .\*.java goto compile
rem clas文件和java文件都不存在,提示并退出
echo 【提示】没有找到可执行的java和class文件
goto exit

rem 编译
:compile
javac *.java -encoding utf-8
goto start

rem 判断class文件数目
:check
SETLOCAL ENABLEDELAYEDEXPANSION
::统计class文件的数目
for /f %%i in ('dir /b *.class') do (
    set /a count+=1
    if !count!==1 set execfile=%%i
)
if %count%==1 (goto exec)
echo 根目录文件夹中包含的class文件数超过一个,请指定要执行的主程序。
echo 建议:根目录只存放唯一的主程序class文件,其他class文件使用文件夹包裹。
echo 【请选择主程序】
::循环打印所有文件,以供用户选择
for /f %%a in ('dir /b *.class') do (
    set /a num+=1
    set name=%%a
    echo    [!num!] !name:.class=!
)
:input
::循环,确认用户选择的文件是哪一个
set /p inputnum=输入数字编号:
::判断输入是否为数字
::EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于
echo %inputnum%|findstr "[^0-9]"&&(
    echo error:输入格式有误!
    goto input
)||(
    ::大于上限
    if %inputnum% GTR %count% (
        echo error:超出选项范围!
        goto input
    )
    ::小于下限
    if %inputnum% LEQ 0 (
        echo error:超出选项范围!
        goto input
    )
    ::正确
    for /f %%b in ('dir /b *.class') do (
        set /a filenum+=1
        if !filenum!==!inputnum! set execfile=%%b
    )
)

rem 执行class
:exec
set execfile=%execfile:.class=%
echo ==================JAVA==================
java %execfile%
echo ==================END===================
goto exit

rem 退出
:exit
::输出空行
echo.
ENDLOCAL
pause
exit
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值