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

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  2. 如何选择适合的前端UI框架

    根据近几年前端框架的热门,在前端开发框架不断更新与交换的时代,每一年都有黑马出现,是否适合自己开发的项目就不得而知了,只有认真的了解之后才能知道,这里主要给大家说一下如何选择适合旅游的前端UI框架?相 ...

  3. codeforces 862B B. Mahmoud and Ehab and the bipartiteness

    http://codeforces.com/problemset/problem/862/B 题意: 给出一个有n个点的二分图和n-1条边,问现在最多可以添加多少条边使得这个图中不存在自环,重边,并且 ...

  4. Fiddler抓包工具使用详解

    一.Fiddler简介 Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求.允许你监视.设置断点.甚至修改输入输出数据.Fiddler包含了一个强 ...

  5. iOS开发者的管理工具-CocoaPods安装

    1. 安装 Ruby 对于iOS开发者,CocoaPods是最方便使用的第三方管理工具了,但是怎么安装CocoaPods呢,安装CocoaPods之前,要确保mac已经安装上Ruby,但在安装Ruby ...

  6. [js高手之路] es6系列教程 - 迭代器与生成器详解

    什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的 ...

  7. spring jar包

    org.springframework.aop- 3.0.0.RELEASE--------------------Spring的面向切面编程,提供AOP(面向切面编程)实现 org.springfr ...

  8. 浅析前端开发中的 MVC/MVP/MVVM 模式

    MVC,MVP和MVVM都是常见的软件架构设计模式(Architectural Pattern),它通过分离关注点来改进代码的组织方式.不同于设计模式(Design Pattern),只是为了解决一类 ...

  9. 使用vs编译事件来动态发布配置文件

    我们知道开发有很多的环境,一般我们会分为开发环境,测试环境,生产环境.而我们使用的vs默认配置就两种:Debug和Release.当然vs支持通过配置管理器来添加,编辑及删除配置. 为此不同的环境和配 ...

  10. 插入排序的性能测试对比(C与C++实现)

    一.概述: [标题]学生成绩管理的设计与实现 [开发语言]C.C++ [主要技术]结构体.STL [基本功能]实现对学生成绩类的基本操作:增加.删除.查询.排序 [测试数据]功能测试:按提示输入5组正 ...