windows批处理运行java程序

明确需求

今天你编了一个java swing版照片查看器,想让计算机上的所有照片默认打开方式都改成你的照片查看器.

使用工具软件

很多工具软件都是不把jre打包到exe中的,这就是说打包之后的exe只能运行在装了jre的机器上.这一点我是很满足的,有的人就想把jre打包到exe里面从而到处运行.推荐两款jar2exe工具:

  • exe4j:生成的是一个文件夹,jre会被导出到文件夹中,文件夹中包含一个exe.
  • jsmooth,我觉得这个比较好,可以生成一个独立的exe

当你编的java程序有所改动之后,都需要重新生成exe,十分麻烦.不如下面批处理方法运行java程序灵活.

常用的几个java命令

  • java.exe:在控制台下运行,是阻塞的.即你在控制台下输入java -jar haha.jar,知道haha.jar运行结束之后,你才能回到控制台下继续使用控制台.
  • javaw.exe:它是非阻塞的,当你编一个脚本
javaw -jar haha.jar
echo haha

运行之,会发现haha.jar还没运行完就已经开始执行echo haha

使用windows批处理

如果你不想折腾,不想安装软件.那么必然是通过cmd或者exe来运行javaw -jar haha.jar来启动你的应用.

使用cmd时,要注意把各个命令的回显关闭.echo off命令关闭全部回显,echo on打开会先,@mycmd命令表示执行mycmd这个命令时不显示回显.

在批处理中传参数使用方法如下:

  • %0,%1,%2...表示第几个参数
  • %0表示命令本身,%1表示第一个参数,这跟c语言中main(int argcnt,char**args)是一样的
  • %*表示全部命令参数
  • %cd%表示当前工作区路径

经过上面步骤还是会看见黑色控制台的,解决方案是使用start命令.它的作用是启动一个单独的窗口以运行指定的程序或命令。

@start javaw haha.jar %*

在调用javaw haha.jar时,会报错找不到haha.jar,解决方案一使用绝对路径(可移植性差),解决方案二就是获取当前运行脚本的路径

  • %~0或者%0: 取文件名(名+扩展名)
  • %~f0:取全路径
  • %~d0:取驱动器名
  • %~p0:只取路径(不包驱动器)
  • %~n0:只取文件名
  • %~x0:只取文件扩展名
  • %~s0:取缩写全路径名
  • %~a0:取文件属性
  • %~t0:取文件创建时间
  • %~z0:取文件大小

以上选项可以组合起来使用,如%~nx0相当于%0,%~dpnx0相当于%~f0.

使用exe运行javaw命令,可以编一段c++代码

#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main(int cnt,char**args){ 
    system("java -jar haha.jar ");
    return 0;
}

windows批处理中的注释

windows批处理的注释方式有好多种

  • rem方式,可以进行单行注释,在行末写^表示本行没有结束,相当于python中的''
rem 这是第一行注释^
这是第二行注释^
每一行的结尾都加上转义字符就可以把多行当做1行来看,所以就不用每行都写rem
pause
  • goto+标号方式
goto :main
这里可以写一些关于文档的说明
如作者、编写日期等信息
这些信息写完后,添加主标签就可以,运行时,会直接跳到main标签开始运行
:main
echo hello world

总结

批处理文件方式最好.最终结果

set x=%~dp0%haha.jar
start javaw -jar %x% %*

转载于:https://www.cnblogs.com/weiyinfu/p/6082011.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值