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 pausegoto+标号方式
goto :main 这里可以写一些关于文档的说明 如作者、编写日期等信息 这些信息写完后,添加主标签就可以,运行时,会直接跳到main标签开始运行 :main echo hello world
总结
批处理文件方式最好.最终结果
set x=%~dp0%haha.jar
start javaw -jar %x% %*
windows批处理运行java程序的更多相关文章
- Java魔法堂:以Windows服务的形式运行Java程序
一.前言 由于防止维护人员误操作关闭Java控制台程序,因此决定将其改造为以Windows服务的形式运行.弄了一个上午总算搞定了,下面记录下来,以供日后查阅. 二.Java Service Wrapp ...
- java的windows自动化-自动运行java程序
那么在一些工具齐全并且已经有了一定的写好的java程序的情况下(环境变量和软件见上一章http://www.cnblogs.com/xuezhezlr/p/7718273.html),如何自动化运行j ...
- windows下通过.bat运行java程序
在windows下运行Java项目,单独的jar可以使用,java -jar xxx.jar 运行,如果是一个zip包,里面包含了class文件和所依赖的jar的时候,可以使用 (也可以以看看这里): ...
- 在 Sublime Text 3 中配置编译和运行 Java 程序
参考网址:http://www.open-open.com/lib/view/open1388105023765.html 1. 设置 java 的 PATH 环境变量 2. 创建批处理或 Shell ...
- Jenkins 构建运行java程序
我们将在Jenkins建立执行一个简单的 HelloWorld 应用程序,构建和运行Java程序.打开网址:http://localhost:8080/jenkins 第1步- 转到Jenkins 仪 ...
- 在 Sublime Text 2 中编译和运行 Java 程序,以及输出中文出错问题解决办法
Sublime Text 2 是我最喜欢用来编码的文本编辑器,如果你尝试使用后相信你也会喜欢上它的.在这篇文章中我们将讨论如何在 Sublime Text 2 中编译和运行 Java 程序. 第一步: ...
- 创建用于编译和运行Java程序的批处理文件
创建用于编译和运行Java程序的批处理文件 每次编译或运行Java程序时,都要在DOS命令行中输入很长的javac或java命令,悟空觉得太麻烦,就编写了一个适用于Windows操作系统的批处理文件b ...
- 在云端服务器centos7安装jvm并且运行java程序
(1)在云端服务器 下载jdk http://www.linuxidc.com/Linux/2016-09/134941.htm(大致看这个文章后可以下载一个jdk的压缩包,然后将压缩包解压) 然后, ...
- 如何在linux下安装jdk并运行java程序
一.进入root 大家可以看到我这里用的是CentOS 6.5 系统 二.测试网络与YUM是否可用 1.测试网络 ping www.baidu.com,如下图就是通了 参考: 一.JDK安装1.lin ...
随机推荐
- iOS UIGestureRecognizer与UIMenuController(内容根据iOS编程)
UIGestureRecognizer 对象会截取本应由视图处理的触摸事件.当某个UIGestureRecognizer对象识别出特定的手势后,就会向指定的对象发送指定的消息.iOS SDK默认提供若 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- 设计模式(八)桥接模式(Bridge Pattern)
一.引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视 ...
- 珍珠(bead)
题目描述 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面给出 ...
- java中的switch case
switch-case语句格式如下 switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //... ...
- 来玩Play框架07 静态文件
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Play框架的主要功能是提供动态响应的内容.但一个网络项目中必然有大量的静态内容, ...
- 扩展JS Date对象时间格式化功能
在自己JS代码中引入一下代码: Date.prototype.format =function(format) { var o = { "M+" : this.getMonth() ...
- IE 浏览器各个版本 JavaScript 支持情况一览表
语言元素 语言元素 突发.IE6 标准.IE7 标准 IE8 标准 IE 9 标准 IE 10 标准 边缘 Windows 应用商店应用程序 __proto__ 属性 (Object) (JavaSc ...
- Jquery 页面间传值(非QuerryString)
实现原理: 实现方式不是很复杂,父页面A打开一个子页面 A1,并同时写一个带参数的接收数据函数Receive(result),在A1页面进行逻辑操作,然后调用父页面A的Receive(result)函 ...
- Threejs中的材质贴图
最近项目需要折腾three.js,有关three.js几点说明 1.作用 threejs适合创建简单的模型视图 2.对于复杂的模型图(如:室内模型图)需要美术3D制作,前端导成特定格式文件(如*.mt ...