ant编译java
在build.properties文件里面定义路径,在build.xml里面可以直接指定的
例如:
build.properties中定义
source.dir=./a:/sources
class.dir=./b:/classes
build.xml
<targetname="compile"depends="clean"description="编译">
<mkdirdir="${class.dir}"/>
<javacsrcdir="${source.dir}"
destdir="${class.dir}"
classpath=""
nowarn="true"
encoding="Windows-31j"
debug="on"/>
<todir="${class.dir}">
<filesetdir="${class.dir}">
<includename="**/*.java
</fileset>
</>
</target>
❷ 使用Ant在编译java类的时候出现以下错误,请问是什么原因呢应该如何解决
泛型类型,javac编译出错,加-source1.5
泛型从1.5以后开始有C:>javac
用法:javac<options><sourcefiles>
其中,可能的选项包括:
-g生成所有调试信息
-g:none不生成任何调试信息
-g:{lines,vars,source}只生成某些调试信息
-nowarn不生成任何警告
-verbose输出有关编译器正在执行的操作的消息
-deprecation输出使用已过时的API的源位置
-classpath<路径>指定查找用户类文件和注释处理程序的位置
-cp<路径>指定查找用户类文件和注释处理程序的位置
-sourcepath<路径>指定查找输入源文件的位置
-bootclasspath<路径>覆盖引导类文件的位置
-extdirs<目录>覆盖所安装扩展的位置
-endorseddirs<目录>覆盖签名的标准路径的位置
-proc:{none,only}控制是否执行注释处理和/或编译。
-processor<class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认的搜索进程
-processorpath<路径>指定查找注释处理程序的位置
-parameters生成元数据以用于方法参数的反射
-d<目录>指定放置生成的类文件的位置
-s<目录>指定放置生成的源文件的位置
-h<目录>指定放置生成的本机标头文件的位置
-implicit:{none,class}指定是否为隐式引用文件生成类文件
-encoding<编码>指定源文件使用的字符编码
-source<发行版>提供与指定发行版的源兼容性
-target<发行版>生成特定VM版本的类文件
-profile<配置文件>请确保使用的API在指定的配置文件中可用
-version版本信息
-help输出标准选项的提要
-A关键字[=值]传递给注释处理程序的选项
-X输出非标准选项的提要
-J<标记>直接将<标记>传递给运行时系统
-Werror出现警告时终止编译
@<文件名>从文件读取选项和文件名
❸ java web项目开发,用ant将java文件编译为class文件和直接在Eclipse运行java文件编译成class,有什么区别
没有任何区别。ant是自动化编译工具,而Eclipse作为IDE,也可以帮助你自动化编译。编译的过程都是调用了你安装的JDK中的java编译器
❹ 如何使用Ant来编译Java文件以及如何运行
一、源文件情况
源文件位置为:D:\temp,源文件名(含包名字):com.ldq.WeatherDemo.java
前提:已安装 jdk ,并配置好环境变量。
二、过程
1、编译:
提示符进入 D:\temp 路径下,输入:javac com\ldq\WeatherDemo.java
生成类文件:WeatherDemo.class
2、打包:
提示符进入 D:\temp 路径下,输入:jar cvf WeatherDemo.jar com\ldq\WeatherDemo.class
生成档案文件:WeatherDemo.jar
3、修改 MANIFEST.MF 文件:
由于引用了外部的类,所以要添加引用类的路径,即修改MANIFEST.MF文件。保存如下内容到 D:\temp下,文件名 MANIFEST.MF
Manifest-Version: 1.0
Sealed: true
Main-Class: com.ldq.WeatherDemo
Class-Path: lib/jaxrpc.jar lib/log4j-1.2.8.jar lib/mail.jar lib/saaj.jar lib/tools.jar lib/wsdl4j-1.5.1.jar lib/activation.jar lib/axis.jar lib/axis-ant.jar lib/commons-discovery-0.2.jar lib/commons-logging-1.0.4.jar
注意在后面空两行。
提示符进入 D:\temp 路径下,输入:jar umf MANIFEST.MF WeatherDemo.jar
执行时会提示更新的内容。
4、添加包含引用类的相应文件:
在 D:\temp 路径下,新建 lib 文件夹,讲对应的 jaxrpc.jar ... 拷入其中,此时,即可双击(或在提示符下输入:java -jar WeatherDemo.jar)运行 WeatherDemo.jar 文件了。
三、总结
双击运行 jar 文件时,虚拟机会到 jar 文件中下找 .MF 文件,找到对应的 Main-Class 运行,引入的类在 Class-Path 所指路径。
事实上可以利用 winrar或winzip 工具打开 jar 文件,直接将修改好的 MANIFEST.MF 拷入覆盖,class文件也可以做同样的操作,节省了输入复杂难记的命令。另外,对于 javaME 生成的 jar 文件,限制严格些,MANIFEST.MF 文件中有个文件大小的字段,可以先保存,查看文件大小,再修改保存。
另一种方法是通过 Eclipse - Export - Runnable JAR file 直接生成 jar 文件,此时,所有的引用类都被打包在 jar 文件里了。
❺ ant编译java文件时报错
大小写不对?
fork="true" memoryInitialSize ="512M" memoryMaximumSize ="1024M"
还有fork="true" 是指定一个单独的编译器,你要确定你的javac.exe存在,可以用executable="/yourpath"指定你编译器的路径
❻ 用ant编译java的问题
我编译都是这么整:
<target name="build" description="Compile main source tree java files">
<mkdir dir="$"/>
<javac destdir="$" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="$"/>
<classpath refid="master-classpath"/>
</javac>
</target>
给你一个建议,ant的具体用法是不需要太深入的了解,会读会用会改会,就能基本应付工作中所有问题了。我以前还是自己写ant,到后来发现没什么必要,现在用的ant就是从hibernate中帮助文档里找来的,功能很全面,常用的都有了。
<?xml version="1.0"?>
<project name="springmvc" basedir="." default="usage">
<property file="build.properties"/>
<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="$/WEB-INF/classes"/>
<property name="name" value="springmvc"/>
<path id="master-classpath">
<fileset dir="$/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<!-- We need the servlet API classes: -->
<!-- * for Tomcat 5/6 use servlet-api.jar -->
<!-- * for other app servers - check the docs -->
<fileset dir="$">
<include name="servlet*.jar"/>
</fileset>
<pathelement path="$"/>
</path>
<target name="usage">
<echo message=""/>
<echo message="$ build file"/>
<echo message="-----------------------------------"/>
<echo message=""/>
<echo message="Available targets are:"/>
<echo message=""/>
<echo message="build --> Build the application"/>
<echo message="deploy --> Deploy application as directory"/>
<echo message="deploywar --> Deploy application as a WAR file"/>
<echo message="install --> Install application in Tomcat"/>
<echo message="reload --> Reload application in Tomcat"/>
<echo message="start --> Start Tomcat application"/>
<echo message="stop --> Stop Tomcat application"/>
<echo message="list --> List Tomcat applications"/>
<echo message=""/>
</target>
<target name="build" description="Compile main source tree java files">
<mkdir dir="$"/>
<javac destdir="$" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="$"/>
<classpath refid="master-classpath"/>
</javac>
</target>
<target name="deploy" depends="build" description="Deploy application">
< todir="$/$" preservelastmodified="true">
<fileset dir="$">
<include name="**/*.*"/>
</fileset>
</>
</target>
<target name="deploywar" depends="build" description="Deploy application as a WAR file">
<war destfile="$.war"
webxml="$/WEB-INF/web.xml">
<fileset dir="$">
<include name="**/*.*"/>
</fileset>
</war>
< todir="$" preservelastmodified="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</>
</target>
<!-- ============================================================== -->
<!-- Tomcat tasks - remove these if you don't have Tomcat installed -->
<!-- ============================================================== -->
<path id="catalina-ant-classpath">
<!-- We need the Catalina jars for Tomcat -->
<!-- * for other app servers - check the docs -->
<fileset dir="$">
<include name="catalina-ant.jar"/>
</fileset>
</path>
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<target name="install" description="Install application in Tomcat">
<install url="$"
username="$"
password="$"
path="/$"
war="$"/>
</target>
<target name="reload" description="Reload application in Tomcat">
<reload url="$"
username="$"
password="$"
path="/$"/>
</target>
<target name="start" description="Start Tomcat application">
<start url="$"
username="$"
password="$"
path="/$"/>
</target>
<target name="stop" description="Stop Tomcat application">
<stop url="$"
username="$"
password="$"
path="/$"/>
</target>
<target name="list" description="List Tomcat applications">
<list url="$"
username="$"
password="$"/>
</target>
<!-- End Tomcat tasks -->
<property name="test.dir" value="test"/>
<target name="buildtests" description="Compile test tree java files">
<mkdir dir="$"/>
<javac destdir="$" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="$"/>
<classpath refid="master-classpath"/>
</javac>
</target>
<target name="tests" depends="build, buildtests" description="Run tests">
<junit printsummary="on"
fork="false"
haltonfailure="false"
failureproperty="tests.failed"
showoutput="true">
<classpath refid="master-classpath"/>
<formatter type="brief" usefile="false"/>
<batchtest>
<fileset dir="$">
<include name="**/*Tests.*"/>
</fileset>
</batchtest>
</junit>
<fail if="tests.failed">
tests.failed=$
***********************************************************
***********************************************************
**** One or more tests failed! Check the output ... ****
***********************************************************
***********************************************************
</fail>
</target>
<!-- clean -->
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="$">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
<target name="undeploy" description="Un-Deploy application">
<delete>
<fileset dir="$/$">
<include name="**/*.*"/>
</fileset>
</delete>
</target>
</project>
❼ java ant 编译问题
从错误上看是由于ant编译时虚拟机内存不足导致溢出,你可以试试下面的方法:
打开菜单Window>Preference>Java>Installed JREs
转钟默认的jre,点击edit,在Default VM Arguments中输入-Xms256m -Xmx512m
重新启动myeclipse再试试
❽ Ant 用javac编译时怎样指定jdk的版本
可以使用javac命令javac命令格式及用法如下:
用法:javac <选项> <源文件>
其中,可能的选项包括:
-source <版本> 提供与指定版本的源兼容性
-target <版本> 生成特定 VM 版本的类文件 例如:C:>javac -source 1.5 -target 1.5 p100Sum.java这样就把p100Sum.java源文件兼容的编译成1.5版本了<javacfork="true"
executable="C:/j2sdk1.4.2_05/bin/javac"
source="1.4"
memoryInitialSize="512m"
memoryMaximumSize="1024m"
classpathref="path.id.classpath"
srcdir="${src}"
destdir="${classes}"
debug="true"
deprecation="on"
optimize="off"
/>source处填版本号
❾ Ant运行java类问题,怎么解决
ant有<javac>标签可以编译java文件,<java>标签运行class文件,<jar>标签打包java文件。例如
<javacsrcdir="src"
destdir="build"
classpath="xyz.jar"
debug="on"
source="1.8"
/>
这个表示编译src下的所有java文件到build目录,依赖xyz.jar
<javaclassname="test.Main">
<argvalue="-h"/>
<classpath>
<pathelementlocation="dist/test.jar"/>
<pathelementpath="${java.class.path}"/>
</classpath>
</java>
这个是运行一个class类的例子。
❿ ant批量编译java文件,当出错的时候需要输出错误信息,但是他只输出了100条记录,请问高手们:怎样才能设
运行ant命令时指定-logfile参数,例如:
ant -f build.xml -logfile release.log
