java的windows自动化-自动运行java程序
那么在一些工具齐全并且已经有了一定的写好的java程序的情况下(环境变量和软件见上一章http://www.cnblogs.com/xuezhezlr/p/7718273.html),如何自动化运行java程序呢
本文所有路径都是本地的绝对路径,读者应随机应变,在自己机器上的路径与我的路径会有出入,一定要改
首先先建立一个新的java程序helloword,,,打开ideal,创建一个maven的工程,导入我们的jdk(路径请自行寻找,就是java的安装地点选定jdk文件夹)。并创建一个java工程,名字随意,笔者写的是123,,,
另一方面,我们在新建立的工程下新建文件夹和java程序,先到src->main->java下右键新建一个package(这就是java的文件夹,理论上应该按照一定规则把有相似用法或者相互调用关系的程序放在一个文件夹中),再在新的文件夹下右键新建java程序
里面写上一句话
public static void main(String args[]){
System.out.printf("helloword");
}
运行后可以直接打印出helloword,这就是java的手动运行方式
再建立一个程序,只是输出变为了123456
下面就该想了,所谓的自动化应该是非人工机器执行的一个定时的机制,绝对不是手动的,,,所以下面来说下怎么让机器来执行上述java代码,我一共会3种方法,比较推荐第3种
1使用压缩jar包启动
打开xshell,输入命令cd C:\Users\007\IdeaProjects进入刚刚建立的项目的工程上一级目录,然后执行jar -cvf zlr.jar 123,这个命令可以把123这个java工程打包成zlr.jar的jar包
再进入C:\Users\007\IdeaProjects目录下,可以看到zlr.jar包在该目录下存在,在这个目录下新建一个zlr.bat的文件,里面写上这几句话
@echo off
java -jar zlr.jar
pause
其实.bat文件其实就是,我们运行的方式,而这里的@echo off和pause是让页面暂停,不加的话运行结果根本看不到,,,中间那句java -jar zlr.jar才是运行jar文件的语句
保存后双击运行,报错如图
这里报错没有主清单文件,修改方法是,使用rar形式打开后进入META-INF文件夹,看一下MANIFEST.MF,里面现在只有两句话
Manifest-Version: 1.0
Created-By: 1.8.0_131 (Oracle Corporation)
在后面添加上这一句话Main-Class: zlr.shiyan,注意冒号后面的空格,替换后运行报错,,,找不到或无法加载主类 zlr.shiyan
可见这种方法真心的恶心,我们要做的是,把代码中的第一行package zlr;去掉,只打jar包是没问题的运行,,,
2与上文很相近的class运行
在原来的代码基础上进入目录C:\Users\007\IdeaProjects\123\src\main\java\zlr可以看到两个java文件,这就是我们这两个可怜的程序
在xshell中运行下列命令
cd C:\Users\007\IdeaProjects\123\src\main\java\zlr //进入
javac shiyan.java //打包shiyan.java这个java程序,生成的class文件在当前目录下
javac shiyan //运行shiyan这个刚刚生成的class文件
3使用ant进行触发
在上文提到的两种方法中我们认识到,启动一个java程序需要先编译在进行其他操作,而且相对的比较麻烦,主要是如果java工程相对的比较庞大,我们要做的要先删除包声明package zlr;这种东西,这是十分不友好的
使用ant进行触发的话可以有以下几点好处
1ant集成性较好,可以把jar包导入在程序里面写出来,也可以发邮件等操作
2ant使用的是class文件,也算是比较简单的得到
3ant对包名称,注释等java现象可以比较好的兼容,ant也会打日志~
4ant支持*这种操作,也有一些标签,对testng,jmeter和juint都支持性较强,而上文中的基本上是只支持main函数(笔者确实只知道他们支持main函数,其他的暂时不知道~)
总的来说我个人非常喜欢使用ant来触发,现在来看一下怎么触发
在那个class所在的路径下,建立一个xml文件,里面写上这些
<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir=".">
<!--运行 运行命令其实就是Java的命令。指明要运行的类名,以及路径,可以知名运行的class-->
<target name="run">
<java classname="shiyan" classpath="C:\Users\007\IdeaProjects\123\src\main\java\zlr" />
</target>
</project>
其实这个classpath和classname是每个人都不一样的,要改,再建立一个.bat文件,写上
ant -f C:\Users\007\IdeaProjects\123\src\main\java\zlr\build18.xml>C:\Users\007\IdeaProjects\123\src\main\java\zlr\build18.log
运行结果会写到build18.log中,显示运行成功
--------我是华丽的分割线------
上文介绍了如何用程序ant来运行java代码,下面简单说一下怎么用windows的定时任务
笔者是windows10,其他操作系统请自行摸索
搜索任务,选择任务计划程序,右键创建一个基本任务,如下图
点击下一步,选择启动程序,找到我们的bat文件,,,
如此就可以完成一个最简单的windows定时触发器了
触发器的话除了这种定时任务之外,还可以使用jenkis触发,我也做过,但是那是另外一个工程了,总的来说如果没有部署的事情的话,定时触发使用这个就ok了
累死我了,这样终于介绍完了windows自动化的实现了,在自己写好java代码的基础上,使用定时任务+.bat+ant+build->java即可~有机会就试试吧,电脑上就可以做到的
java的windows自动化-自动运行java程序的更多相关文章
- java testng框架的windows自动化-自动运行testng程序上篇
本文旨在让读者简单了解testng的自动运行 怎么说呢,在网上已经有了各个前辈进行代码演示以及分享,我力争说到点子上 接上文,之前讲的大部分是juint的自动化代码运行,从未涉及到testng,但是在 ...
- java的mac自动化-自动运行java程序
本文旨在帮助读者介绍,如果一个测试工程师拿到了mac本,该如何在本地自动运行java代码 首先如图所示写下如下一段代码 package zlr;import org.junit.Test;public ...
- java juint框架的windows自动化-自动运行juint程序简述
在京东混了一个月,基本有点稳定了,觉得也有所余力了现在,继续写博客吧,不过以后更新也许不是那么频繁了 本人使用的是juint框架,对开发是一个单元测试的java框架,但是对测试而言是java的基石之一 ...
- java testng框架的windows自动化-自动运行testng程序下篇
本文旨在让读者简单了解testng的自动运行 接上文https://www.cnblogs.com/xuezhezlr/p/9213456.html,文章大致把testng中比较特殊的两个xml形式说 ...
- NanoPC-T4/RK3399开发板Ubuntu FriendlyCore系统开机自动运行客户程序
RK3399开机自动运行客户程序 比如hellohello.c 交叉编译:aarch64-linux-gcc hello.c -o hello使用SecureCRT软件通过串口下载到开发板rz修改文件 ...
- webstorm git 怎么断开版本控制 webstorm git for windows 禁止 自动运行
也是无语啊,今天装了下最新版本的webstorm , 发现特别卡,老动不动就卡死, 看了下进程, 牛X 啊, git for windows 一直蹭蹭蹭的疯狂增长,一开始的一点到后来的庞然大物. ...
- 在Windows下MyEclipse运行JAVA程序连接HBASE读取数据出错
运行环境:Hadoop-2.5.0+Hbase-0.98.6 问题描述: 15/06/11 15:35:50 ERROR Shell: Failed to locate the winutils bi ...
- mpush 服务端配置 for windows 服务自动运行
mpush 服务端配置 以下安装部分是参照官方的步骤, 一.安装jdk1.8并配置环境变量 示例: http://www.cnblogs.com/endv/p/6439860.html 二.Wind ...
- Java基础教程——命令行运行Java代码
视屏讲解:https://www.bilibili.com/video/av48196406/?p=4 命令行运行Java代码 (1)使用记事本新建文本文件[Test.java]. 注意,默认状态下W ...
随机推荐
- 201521123013 《Java程序设计》第11周学习总结
1. 本章学习总结 2. 书面作业 Q1.1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥 ...
- 201521123051《Java程序设计》第十一周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. Java多线程同步的方法: (1)同步方法:即有synchronized关键字修饰的方法. 由于java的每个对象 ...
- MarkDown模板
一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...
- mybatis-mapper文件介绍
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...
- JPA关系映射之one-to-one
一对一关联有两种实现方式:一种是共享的主键关联,另一种是一对一的外键关联 1.共享的主键关联:让两个对象具有共同的主键值,以表明他们之间的一一对应关系. Person.java类 public cla ...
- 交互模式下测试python代码及变量的四则运算
在交互模式下,python代码可以立即执行,所以这很方便我们进行代码测试 1.命令窗口,输入python (如果没配置环境变量则需带python安装目录的绝对路径) >>> 这个就是 ...
- Ubuntu Server 17.04安装GNOME指令
短短几行指令,从安装到打开: apt-get install gnome-shell apt-get install xinit xshell 开启 关闭: Ctrl+Alt+F1 Ctrl+A ...
- maven使用阿里代理下载
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http:/ ...
- 基于 Electron 的爬虫框架 Nightmare
作者:William 本文为原创文章,转载请注明作者及出处 Electron 可以让你使用纯 JavaScript 调用 Chrome 丰富的原生的接口来创造桌面应用.你可以把它看作一个专注于桌面应用 ...
- org.springframework.core.io包内的源码分析
前些日子看<深入理解javaweb开发>时,看到第一章java的io流,发觉自己对io流真的不是很熟悉.然后看了下JDK1.7中io包的一点点代码,又看了org.springframewo ...