那么在一些工具齐全并且已经有了一定的写好的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. 201521123109《java程序设计》第一周学习总结

    1.本章学习总结 java是我这学期学习的一门新的编程语言,个人觉得java还是很深奥的,对于一门新的计算机语言,就像打开了一扇新世界的大门,有许多东西需要不断学习不断探索,除了上课认真听讲,平时还要 ...

  2. 源码跟读,Spring是如何解析和加载xml中配置的beans

    Spring版本基于: 跟踪代码源码基于: https://github.com/deng-cc/KeepLearning commit id:c009ce47bd19e1faf9e07f12086c ...

  3. Oracle-表被锁住

    1.如果update 某个表,没有报错,等待很久都没结束,那很有可能是表被锁了. 2.查看被锁的对象 select sid,serial#,username,SCHEMANAME,osuser,MAC ...

  4. 原型那些事 - JavaScript深入浅出(三)

    前两次总结了JavaScript中的基本数据类型(值类型<引用类型>,引用类型<复杂值>)以及他们在内存中的存储,对内存空间有了一个简单的了解,以及第二次总结了this深入浅出 ...

  5. [LeetCode] 344 Reverse String && 541 Reverse String II

    原题地址: 344 Reverse String: https://leetcode.com/problems/reverse-string/description/ 541 Reverse Stri ...

  6. 西邮linux兴趣小组2014纳新免试题(四)

    [第四关] 题目 http://findakey.sinaapp.com/ Example: String1:FFFF8 5080D D0807 9CBFC E4A04 24BC6 6C840 49B ...

  7. Poj 1032 Parliament

    Parliament Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19103   Accepted: 8101 Descr ...

  8. pytorch实现DCGAN、pix2pix、DiscoGAN、CycleGAN、BEGAN以及VAE

    https://github.com/sunshineatnoon/Paper-Implementations

  9. 通过express搭建自己的服务器

    前言 为了模拟项目上线,我们就需要一个服务器去提供API给我们调用数据.这次我采用express框架去写API接口.所有请求都是通过ajax请求去请求服务器来返回数据.第一次用node写后端,基本就是 ...

  10. 【转】Keberos认证原理

    前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去.后来想想原因有以下两点:对于一个没有完全不了解Ker ...