那么在一些工具齐全并且已经有了一定的写好的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程序的更多相关文章

  1. java testng框架的windows自动化-自动运行testng程序上篇

    本文旨在让读者简单了解testng的自动运行 怎么说呢,在网上已经有了各个前辈进行代码演示以及分享,我力争说到点子上 接上文,之前讲的大部分是juint的自动化代码运行,从未涉及到testng,但是在 ...

  2. java的mac自动化-自动运行java程序

    本文旨在帮助读者介绍,如果一个测试工程师拿到了mac本,该如何在本地自动运行java代码 首先如图所示写下如下一段代码 package zlr;import org.junit.Test;public ...

  3. java juint框架的windows自动化-自动运行juint程序简述

    在京东混了一个月,基本有点稳定了,觉得也有所余力了现在,继续写博客吧,不过以后更新也许不是那么频繁了 本人使用的是juint框架,对开发是一个单元测试的java框架,但是对测试而言是java的基石之一 ...

  4. java testng框架的windows自动化-自动运行testng程序下篇

    本文旨在让读者简单了解testng的自动运行 接上文https://www.cnblogs.com/xuezhezlr/p/9213456.html,文章大致把testng中比较特殊的两个xml形式说 ...

  5. NanoPC-T4/RK3399开发板Ubuntu FriendlyCore系统开机自动运行客户程序

    RK3399开机自动运行客户程序 比如hellohello.c 交叉编译:aarch64-linux-gcc hello.c -o hello使用SecureCRT软件通过串口下载到开发板rz修改文件 ...

  6. webstorm git 怎么断开版本控制 webstorm git for windows 禁止 自动运行

    也是无语啊,今天装了下最新版本的webstorm ,  发现特别卡,老动不动就卡死, 看了下进程, 牛X 啊,  git for windows 一直蹭蹭蹭的疯狂增长,一开始的一点到后来的庞然大物. ...

  7. 在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 ...

  8. mpush 服务端配置 for windows 服务自动运行

    mpush 服务端配置 以下安装部分是参照官方的步骤, 一.安装jdk1.8并配置环境变量 示例:  http://www.cnblogs.com/endv/p/6439860.html 二.Wind ...

  9. Java基础教程——命令行运行Java代码

    视屏讲解:https://www.bilibili.com/video/av48196406/?p=4 命令行运行Java代码 (1)使用记事本新建文本文件[Test.java]. 注意,默认状态下W ...

随机推荐

  1. [转载]sqlserver、Mysql、Oracle三种数据库的优缺点总结

    一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能.与许多其他服务器软件紧密关联的集成性.良好的性价比等:为数据管理与分析带来了灵活性,允许单位在快速变化的环境中 ...

  2. 201521123013 《Java程序设计》第11周学习总结

    1. 本章学习总结 2. 书面作业 Q1.1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥 ...

  3. 201521123035《Java程序设计》第十周实验总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  4. 关于SVM数学细节逻辑的个人理解(三) :SMO算法理解

    第三部分:SMO算法的个人理解 接下来的这部分我觉得是最难理解的?而且计算也是最难得,就是SMO算法. SMO算法就是帮助我们求解: s.t.   这个优化问题的. 虽然这个优化问题只剩下了α这一个变 ...

  5. 微信小程序中发送模版消息注意事项

    在微信小程序中发送模版消息 参考微信公众平台Api文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html#模版消息管理 此参考地址 ...

  6. 分区工具fdisk,gdisk,parted

    在linux中,当我们给系统添加一块新硬盘时,我们是无法使用的,因为他还没有分区和格式化,只有当我们将新硬盘分区并格式化之后,挂载在某个目录下,才能供我们正常使用,接下来我们要学习三种硬盘分区工具,f ...

  7. Hibernate逆向工程【PowerDesigner、idea环境下】

    为什么要使用逆向工程 由于我们每次编写Hibernate的时候都需要写实体,写映射文件.而且Hibernate的映射文件也容易出错.而逆向工程可以帮我们自动生成实体和映射文件,这样就非常方便了. 使用 ...

  8. Python学习笔记011_模块_标准库_第三方库的安装

    容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...

  9. JMeter基础之—录制脚本

    Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: l       开源,他是一款开源的免费软 ...

  10. Angularjs-Forms(表单)

    点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ Angular表单 input, select, textarea控件都是给用户输入数据 ...