- 浏览: 273506 次
文章分类
最新评论
-
guji528:
oracle的统计函数真的很强大
Oracle 使用LAG和LEAD函数统计 -
haiyangyiba:
受教了
No Dialect mapping for JDBC type: 3 -
elvishehai:
能不能给个完整点的例子呀,我一直都没有试成功过,
简单的使用jackson的annotation -
miaoyue:
如果我想把name属性转成注释之后,之前的注释还在怎么做?
PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码 -
ianl_zt:
以上方法只适合在hibernate2中使用,现在hiberna ...
Hibernate的批量更新和删除
java程序运行的扩展
1.带有参数的应用程序运行
Ant在<java>任务中提供了<arg>元素,<arg>有四种属性value,file,line,path
public class Hello { public static void main(String[] args) { System.out.println("Hello " + args[0]); File file = new File(args[1]); String[] filename = file.list(); for(int i = 0; i < filename.length; i++) { System.out.println(filename[i]); } } } |
build.xml
<?xml version="1.0"?> <project name="project" default="run"> <property name="run.classpath" value="bin"></property> <target name="compile"> <javac destdir="bin" srcdir="src"></javac> </target> <target name="run" depends="compile"> <java classname="org.ant.chapter1.Hello"> <classpath path="${run.classpath}"></classpath> <arg value="Ant"/> <arg file="D:\rag"/> </java> </target> </project> |
Buildfile: D:\MyEclipse\workspace\sad\build.xml compile: run: [java] Hello Ant [java] hello.dat BUILD SUCCESSFUL Total time: 734 milliseconds |
2.控制新的JVM
一般的<java>任务都运行在当前的JVM中,单一些特定的情况下将Ant运行在新的JVM下面,这时只需要将<java>中的一个属性fork设置为true就可以了.
我们知道,java命令提供了许多的运行参数,用于指定JVM的属性,同样在Ant也提供相应的属性,看例子:
<?xml version="1.0"?> <project name="project" default="run"> <property name="run.classpath" value="bin"></property> <property name="Search.JVM.extra.args" value="-Xincgc"></property> <target name="compile"> <javac destdir="bin" srcdir="src"></javac> </target> <target name="run" depends="compile"> <java classname="org.ant.chapter1.Hello" fork="true" maxmemory="64m"> <classpath path="${run.classpath}"></classpath> <jvmarg line="${Search.JVM.extra.args}"/> <arg value="Ant"/> <arg file="D:\rag"/> </java> </target> </project> |
3.运行jar文件,使用failonerror处理错误
<java>同样提供了运行jar文件的属性
MANIFEST.MF
Mainfest-Version: 1.0 Created-By: myth Sealed: false Main-Class: org.ant.chapter1.Hello |
build.xml
<?xml version="1.0"?> <project name="project" default="run"> <property name="run.classpath" value="bin"></property> <property name="Search.JVM.extra.args" value="-Xincgc"></property> <target name="compile"> <javac destdir="bin" srcdir="src"></javac> </target> <target name="jar" depends="compile"> <jar destfile="test.jar" update="true" manifest="MANIFEST.MF"> <fileset dir="bin"> <include name="**/*.class"/> </fileset> </jar> </target> <target name="run" depends="jar"> <java fork="true" maxmemory="64m" jar="test.jar"> <classpath path="${run.classpath}"></classpath> <jvmarg line="${Search.JVM.extra.args}"/> <arg value="Ant"/> <arg file="D:\rag"/> </java> </target> </project> |
Buildfile: D:\MyEclipse\workspace\sad\build.xml compile: jar: [jar] Updating jar: D:\MyEclipse\workspace\sad\test.jar run: [java] Hello Ant [java] hello.dat BUILD SUCCESSFUL Total time: 875 milliseconds |
在某些情况下,我们不希望由于一些不重要的任务构建失败,而导致整个构建的失败,所以Ant提供了一个共同的属性-failonerror,多数任务的默认值为failonerror="true",既当此任务构建失败时,失败信息会传递给控制台,并导致build failed,failonerror只支持在新的JVM里运行.
<target name="run" depends="jar"> <java fork="true" maxmemory="64m" jar="test.jar" failonerror="false" > <classpath path="${run.classpath}"></classpath> <jvmarg line="${Search.JVM.extra.args}"/> <arg value="Ant"/> <arg file="D:\rag"/> </java> </target> |
Buildfile: D:\MyEclipse\workspace\sad\build.xml compile: jar: run: [java] java.lang.NullPointerException [java] at org.ant.chapter1.Hello.main(Hello.java:27) [java] Hello Ant [java] Exception in thread "main" [java] Java Result: 1 BUILD SUCCESSFUL Total time: 984 milliseconds |
可以看出虽然run构建失败,但是Ant还是执行了,原来的jar文件,并且BUILD SUCCESSFUL!!
使用Ant运行tomcat
Ant使用<exec>任务运行本地程序,先看一个例子:
<?xml version="1.0"?> <project name="project" default="run"> <target name="run"> <exec executable="cmd"> <arg value="/C a.bat"/> </exec> </target> </project> |
a.bat
@echo off echo Hello >> a.txt |
运行完后,会在根目录生成a.txt文件,里面内容为Hello
下面我们来运行tomcat
<?xml version="1.0"?> <project name="project" default="tomcat-start"> <property name="tomcat.dir" value="c:/Tomcat5"></property> <target name="tomcat-start"> <exec dir="${tomcat.dir}/bin" executable="cmd"> <env key="CATALINA_HOME" path="${tomcat.dir}"/> <arg value="/C startup.bat"/> </exec> </target> <target name="tomcat-stop"> <exec dir="${tomcat.dir}/bin" executable="cmd"> <env key="CATALINA_HOME" path="${tomcat.dir}"/> <arg value="/c shutdown.bat"/> </exec> </target> </project> |
成功!!
发表评论
-
简单的使用jackson的annotation
2011-02-16 10:27 25210@JsonAutoDetect (class) 这是作用 ... -
Jackson 入门
2011-02-16 10:25 21988原文链接: http://jackson.codehaus. ... -
Jackson 使用简介
2011-02-16 10:20 8058http://jackson.codehaus.org/ ... -
nexus-maven- repository-index.zip手动下载与设置
2010-04-16 14:46 12664问题描述: 在启动eclipse的时候,在maven控制 ... -
MyEclipse启动故障-Initializing Java Tooling
2010-04-16 14:43 5636最近安装新系统后,重新安装了JDK,然后启动以前安装的MyEc ... -
iframe跨域session丢失问题
2010-02-04 15:37 5514最近在做一个系统(A),需要在系统(A)中集成目前现存系统(B ... -
SSH常见问题及解决办法
2010-01-21 17:18 3789内容检索 1.警告: No configuratio ... -
SLF4J+logBack, 日志领域中的新秀
2009-04-25 13:57 3587Ceki Gülcü创造了日志领 ... -
struts2.1.6,spring2.5.6,hibernate3.3.1,annotations
2009-04-24 15:50 3064根据流程进行注意点的 ... -
用HttpClient来模拟浏览器GET POST
2009-01-09 11:37 2211一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
java输出扭曲验证码
2008-11-07 16:43 5625import java.awt.Color; import j ... -
getOutputStream() has already been called for this
2008-11-07 16:30 2660有一个使用SerlvetResponse输出图像的例子,代码如 ... -
深入探索 高效的Java异常处理框架【转自www.bitsCN.com】
2008-11-03 11:58 2764摘要:本文从Java异常最基本的概念、语法开始讲述了Java异 ... -
Spring+Hibernate+Struts2整合文档
2008-11-03 10:44 3746一、 Spring+Hibernate整合: Spring整 ... -
Tomcat启动分析
2008-10-29 11:05 29791 - Tomcat Server的组成部 ... -
tomcat集群和负载均衡
2008-10-29 11:00 3458(一)环境说明(1)服务器 ... -
Log4j配置文件
2008-10-29 10:58 2272#配置根Logger,其语法为:log4j.rootLog ... -
c3p0连接池说明
2008-09-18 11:57 3156<c3p0-config> <def ... -
利用xfire编写webservice
2008-08-15 10:19 37161. xfire + spring 发布webserv ... -
struts + spring + xfire (组合)
2008-08-15 10:14 3887一般情况下, spring+ struts的组合,struts ...
相关推荐
你的习惯对了 你无所不能-习惯的力量PPT模板.pptx
MatlabGUI使用java组件无所不能-uicomponent.m 是不是曾经想做出漂亮的GUI 界面? 是不是曾经想在 Matlab GUI里面显示网页? 看看这个界面: matlab_java.png 所以,...
智慧能源-无所不能 完整
苹果JBL大无所不能遥控器操作说明。解决好多人不会使用遥控操作的问题。
互联网 智慧能源-无所不能 .pptx
让迅雷无所不能下载、通吃一切 让迅雷无所不能下载、通吃一切
能源互联网白皮书-to 无所不能.zip
能源互联网白皮书-to 无所不能.pptx
万能编程器,各种EPROM、atmel、FLASH、pic等芯片,进行编程
迅雷5专用让迅雷无所不能下载,迅雷支持专用链接,里面有使用说明。
一款很好的电脑测试软件无所不能~~收了吧~不看会后悔
让迅雷无所不能下载.rar 网上找到的评价还不错的一个补丁。。。共享一下。。。 (本人没用过)
让迅雷无所不能的工具 迅雷下载其他资源 比如电驴 快车等等
VB无所不能系列收集于网络,全文共7部分,包含原码。 主要内容: 1、指针 2、图像格式转换 3、获取消息钩子 4、透明和半透明窗体 5、创建标准DLL 6、监控运行程序 7、多线程
网络精选教程,希望大家不要忘记VB,包括GDI绘画等详解的例子
重磅!谷歌发布5620亿参数多模态模型PaLM-E,机器人操控无所不能
重磅!谷歌发布5620亿参数多模态模型PaLM-E,机器人操控无所不能.pdf
无所不能 相当强大 目前最强大内容最丰富的超级模块