Java class文件在编译时,为了防止文件的丢失UltraEdit会自动进行备份,生成bak文件。如果不备份可按以下操作进行:高级——设置——导航——文件处理——备份,在“保存文件时备份”一栏,选择备份或不备份。注:此编译器为UltraEdit,其它编译器不太清楚,我认为应该都差不多,可以试试啊。希望有帮助!...
UltraEdit 是 NOTEPAD 绝佳的替代品并远远超过后者 它支持无限的
文件
大小 100 000 单词的拼写检查器 完整的 HEX 编辑功能 供程序员使用的可配置句法高亮显示 以及列
编译
等功能 UltraEdit 拥有您需要的所有特性 它可以立即处理多个
文件
甚至是数兆字节的
文件
它基于磁盘 只需要很小的内存 即使是很大的文档也一样 UltraEdit 适用于 Windows 2000 XP 2003 Vista 7
标准特性:
-基于磁盘的文本编辑
-文档大小不受限制 即使是数兆字节的
文件
也只占用最小限度内存
-可同
时
打开和显示多个文档
-列模式编辑 插入列 删除 减切 添加序列
-拖放
编译
-
文件
排序(包括删除重复
文件
忽略大小写 升序 降序)
-100 000 单词拼写检查器
-句法高亮显示-可配置 为 C C++ VB HTML 和
Java
预配置
-在特定列以硬回车自动换行
-在现有文档的光标位置插入
文件
-
文件
管理器支持拖放功能
-可配置工具栏
-分隔栏窗口
-插入和叠印模式用于编辑
-多层次撤消和恢复
-UltraEdit 兼容 Windows 3 x CUA
-查找和替换 按下 shift 键后 允许选择插入符和查找目标之间的文本 可替换选定区域内的所有内容
-
文件
内查找
文件
内替换
-转到行号 分页符
-显示器和打印机字体选择 (支持所有安装的字体 包括 TRUE TYPE 字体)
-打印支持页眉 页脚 页边距和分页
-自动行缩近
-制表符设置
-支持自动换行
-十六进制编辑器 允许编辑任何二进制
文件
支持十六进制剪切 复制和粘贴
-十六进制字符的插入和删除
-十六进制查找 替换和全部替换
-同
时
多窗口编辑
-全面的宏支持 包括保存和加载
-上下文相关帮助
-在原
文件
目录内自动备份
生成
的
文件
扩展名为(
BAK
)
-UltraEdit 在每次使用
时
均保持其屏幕位置
-行和列号显示(可禁用行号的显示)
-用鼠标右键可弹出菜单
-文本可切换大小写首字符大写
-UNIX MAC 到 DOS 转换
-DOS 到 UNIX 转换
-自动检测 UNIX MAC
文件
-自动换行模式转换到CR LF"s 允许用硬回车将自动换行写入
文件
-CR LF"s 转换到自动换行(从
文件
删除 CR LF"s)
-支持模板
-代码折叠
-更多 ">UltraEdit 是 NOTEPAD 绝佳的替代品并远远超过后者 它支持无限的
文件
大小 100 000 单词的拼写检查器 完整的 HEX 编辑功能 供程序员使用的可配置句法高亮显示 以及列
编译
等功能 UltraEdit 拥有您需要的所有特性 它可以立即处 [更多]
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到
Java
项目中,让它简化构建和部署操作。
一. 安装与配置
下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。
添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:"apache-ant-1.7.0。
安装与配置完毕后,读者可以测试一下Ant是否可用,首先进入Ant的bin目录,运行命令ant –version,若安装和配置成功,则会显示Ant版本信息,如下图所示:
由上可以看出,读者运行Ant的命令
时
,需要进入到Ant的bin目录,如何才能让系统自动找到Ant呢?这
时
需要读者在系统环境变量path中添加Ant的bin目录。设置完成后,我们就可以在任何目录(例如C:"Documents and Settings"AmigoXie目录)输入Ant的命令,来获得命令的运行结果。
二. Ant的关键元素
Ant的构件
文件
是基于XML编写的,默认名称为build.xml。为了更清楚的了解Ant,在这里编写一个简单的Ant程序,用来展现Ant的功能,让读者对Ant有一个初步的了解。首先在E盘下建立一个build.xml
文件
,内容如下:
<?xml version="1.0"?>
<project name="helloWorld">
<target name="sayHelloWorld">
<echo message="Hello,Amigo"/>
</target>
</project>
读者可以进入E盘,然后运行ant sayHelloWorld,可以看到如下的运行结果:
其中sayHelloWorld为需要执行的任务的名称。如果
文件
名不为build.xml,而为hello.xml
时
,读者运行同样的命令
时
,命令窗口会出现如下错误:
Buildfile: build.xml does not exist!
Build failed
由上面的命令的错误提示可以看出,ant命令默认寻找build.xml
文件
。若
文件
名为hello.xml
时
,读者还需要对命令做少许改变,改为:ant –f hello.xml sayHelloWorld、ant –buildfile hello.xml sayHelloWorld或ant –file hello.xml sayHelloWorld。
接下来开始向读者讲解本节的重点:Ant的关键元素project、target、property和task。
1. project元素
project元素是Ant构件
文件
的根元素,Ant构件
文件
至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。接下来向读者展示一下project元素的各属性。
1)name属性
用于指定project元素的名称。
2)default属性
用于指定project默认执行
时
所执行的target的名称。
3)basedir属性
用于指定基路径的位置。该属性没有指定
时
,使用Ant的构件
文件
的附目录作为基准目录。
下面给读者一个简单的例子来展示project的各元素的使用。修改E:"build.xml
文件
,修改后的内容如下:
<?xml version="1.0"?>
<project name="projectStudy" default="sayBaseDir" basedir="E:"apache-ant-1.7.0">
<target name="sayBaseDir">
<echo message="The base dir is: ${basedir}"/>
</target>
</project>
从上面的内容我们可以看出,在这里定义了default属性的值为sayBaseDir,即当运行ant命令
时
,若未指明执行的target
时
,默认执行的target的sayBaseDir,同
时
还定义了basedir属性的值为E:"apache-ant-1.7.0,进入E盘后运行ant命令,可看到运行的结果,如下图所示:
因为设定了basedir的值,所以basedir属性的值变成了读者设置的值。读者可以自行将project元素的basedir属性去掉后运行ant看看运行结果,此
时
basedir的值变成了E:",即为Ant构件
文件
的父目录。
有的
时
候,读者可能有这种需求,即想得到某个project下所有的target的名称,读者可以通过在ant命令里加上-proecthelp来达到该目的。例如针对上述的例子我们运行ant –projecthelp,输出结果如下:
Buildfile: build.xml
Main targets:
Other targets:
sayBaseDir
Default target: sayBaseDir
2. target元素
它为Ant的基本执行单元,它可以包含一个或多个具体的任务。多个target可以存在相互依赖关系。它有如下属性:
1)name属性
指定target元素的名称,这个属性在一个project元素中是唯一的。我们可以通过指定target元素的名称来指定某个target。
2)depends属性
用于描述target之间的依赖关系,若与多个target存在依赖关系
时
,需要以“,”间隔。Ant会依照depends属性中target出现的顺序依次执行每个target。被依赖的target会先执行。
3)if属性
用于验证指定的属性是否存在,若不存在,所在target将不会被执行。
4)unless属性
该属性的功能与if属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在target将会被执行。
5)description属性
该属性是关于target功能的简短描述和说明。
下面带领读者来看一个各属性综合使用的例子。修改E:"build.xml
文件
,修改后的内容如下:
<?xml version="1.0"?>
<project name="targetStudy">
<target name="targetA" if="ant.
java
.version">
<echo message="
Java
Version: ${ant.
java
.version}"/>
</target>
<target name="targetB" depends="targetA" unless="amigo">
<description>
a depend example!
</description>
<echo message="The base dir is: ${basedir}"/>
</target>
</project>
进入E盘后运行ant targetB,可看到如下图所示的运行结果:
读者分析结果后可以看到,我们运行的是名为targetB的target,因该target依赖于targetA,所以targetA将首先被执行,同
时
因为系统安装了
java
环境,所以ant.
java
.version属性存在,执行了targetA这个target,输出信息:[echo]
Java
Version: 1.5,targetA执行完毕后,接着执行targetB,因为amigo不存在,而unless属性是在不存在
时
进入所在的target的,由此可知targetB得以执行,输出信息:The base dir is: E:"。
3. property元素
该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant之外设定。若要在外部引入某
文件
,例如build.properties
文件
,可以通过如下内容将其引入:<property file=” build.properties”/>
property元素可用作task的属性值。在task中是通过将属性名放在“${”和“}”之间,并放在task属性值的位置来实现的。
Ant提供了一些内置的属性,它能得到的系统属性的列表与
Java
文档中System.getPropertis()方法得到的属性一致,这些系统属性可参考sun网站的说明。
同
时
,Ant还提供了一些它自己的内置属性,如下:
basedir:project基目录的绝对路径,该属性在讲解project元素
时
有详细说明,不再赘述;
ant.file:buildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml;
ant.version:Ant的版本,在本文中,值为1.7.0;
ant.project.name:当前指定的project的名字,即前文说到的project的name属性的值;
ant.
java
.version:Ant检测到的JDK的版本,在上例运行结果中可看到为1.5。
下面让读者来看一个property元素使用的简单例子。修改E:"build.xml
文件
,内容如下:
<?xml version="1.0"?>
<project name="propertyStudy" default="example">
<property name="name" value="amigo"/>
<property name="age" value="25"/>
<target name="example">
<echo message="name: ${name}, age: ${age}"/>
</target>
</project>
该例的运行结果如下图所示:
由此读者可以看出,通过如下两个语句:
<property name="name" value="amigo"/>
<property name="age" value="25"/>
我们设置了名为name和age的两个属性,这两个属性设置后,读者在下文中可以通过${name}和${age}分别取得这两个属性的值。
三. Ant的常用任务
在Ant工具中每一个任务封装了具体要执行的功能,是Ant工具的基本执行单位。在本小节中,主要引导读者来看下Ant的常用任务及其使用举例。
1. copy任务
该任务主要用来对
文件
和目录的复制功能。举例如下:
Eg1.复制单个
文件
:<copy file="file.txt" tofile="copy.txt"/>
Eg2.对
文件
目录进行复制:
<copy todir="../newdir/dest_dir">
<fileset dir="src_dir"/>
</copy>
Eg3. 将
文件
复制到另外的目录:
<copy file="file.txt" todir="../other/dir"/>
2. delete任务
对
文件
或目录进行删除,举例如下:
Eg1. 删除某个
文件
:<delete file="photo/amigo.jpg"/>
Eg2. 删除某个目录:<delete dir="photo"/>
Eg3. 删除所有的备份目录或空目录:
<delete includeEmptyDirs="true">
<fileset dir="." includes="**/*.
bak
"/>
</delete>
3. mkdir任务
创建目录。eg:<mkdir dir="build"/>
4. move任务
移动
文件
或目录,举例如下:
Eg1. 移动单个
文件
:<move file="fromfile" tofile=”tofile”/>
Eg2. 移动单个
文件
到另一个目录:<move file="fromfile" todir=”movedir”/>
Eg3. 移动某个目录到另一个目录:
<move todir="newdir">
<fileset dir="olddir"/>
</move>
5. echo任务
该任务的作用是根据日志或监控器的级别输出信息。它包括message、file、append和level四个属性,举例如下:
<echo message="Hello,Amigo" file="logs/system.log" append="true">
四. 利用Ant构建和部署
Java
工程
Ant可以代替使用
java
c、
java
和
jar
等命令来执行
java
操作,从而达到轻松的构建和部署
Java
工程的目的。下面来看几个知识点。
1. 利用Ant的
java
c任务来
编译
java
程序
Ant的
java
c任务用于实现
编译
Java
程序的功能。下面来看一个简单的例子:
首先我们建立名为antstudy的
Java
工程,建立src目录为源代码目录,在src目录下建立HelloWorld.
java
这个类
文件
。该类
文件
的内容如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello,Amigo");
同
时
在antstudy工程的根目录下建立build.xml
文件
,在该
文件
中
编译
src目录下的
java
文件
,并将
编译
后的class
文件
放入build/classes目录中,在
编译
前,需清除classes目录,该
文件
的内容如下:
<?xml version="1.0"?>
<project name="
java
cTest"default="compile" basedir=".">
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="build/classes"/>
<
java
c srcdir="src" destdir="build/classes"/>
</target>
</project>
运行该build.xml
文件
,可在工程中看到新增了build/classes目录,并在该目录中
生成
了
编译
后的HelloWorld.class
文件
。
2. 使用Ant的
java
任务运行
Java
程序
Ant中可以使用
java
任务实现运行
Java
程序的功能。下面在1的例子中进行如下的修改,修改后的build.xml
文件
的内容如下:
<?xml version="1.0"?>
<project name="
java
Test" default="
jar
" basedir=".">
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="build/classes"/>
<
java
c srcdir="src" destdir="build/classes"/>
</target>
<target name="run" depends="compile">
<
java
classname="HelloWorld">
<classpath>
<pathelement path="build/classes"/>
</classpath>
</
java
>
</target>
</project>
运行该build.xml
文件
,可在控制台看到HelloWorld的main方法的输出。
3. 使用Ant的
jar
任务
生成
jar
文件
读者可以在上例的基础上更进一步,来
生成
jar
包,可在run这个target下再加上如下target:
<target name="
jar
" depends="run">
<
jar
destfile="helloworld.
jar
" basedir="build/classes">
<manifest>
<attribute name="Main-class" value="HelloWorld"/>
</manifest>
</
jar
>
</target>
此
时
将ant的project的default属性设置为
jar
,同
时
运行该build.xml
文件
,运行完毕后,可看到在工程目录下
生成
了一个
jar
包HelloWorld.
jar
。
4. 使用Ant的war任务打包J2EE Web项目
建立一个J2EE Web工程,其目录结构如下图所示:
其中src为源代码目录,WebRoot为各jsp存放目录,lib为工程的包目录。在antwebproject工程目录下建立了build.xml
文件
,该
文件
为该工程的Ant构件
文件
。读者可以src目录下放入在前续例子中开发的HelloWorld.
java
文件
,并在WebRoot下建立index.jsp
文件
,其内容很简单,就是输出Hello信息,代码如下所示:
<%@ page language="
java
" contentType="text/html; charset="UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ant打包测试</title>
</head>
Hello,Ant
</body>
</html>
接下来编写build.xml
文件
,其内容如下:
<?xml version="1.0"?>
<project name="antwebproject" default="war"basedir=".">
<property name="classes" value="build/classes"/>
<property name="build"value="build"/>
<property name="lib"value="WebRoot/WEB-INF/lib"/>
<!-- 删除build路径-->
<target name="clean">
<delete dir="build"/>
</target>
<!-- 建立build/classes路径,并
编译
class
文件
到build/classes路径下-->
<target name="compile" depends="clean">
<mkdir dir="${classes}"/>
<
java
c srcdir="src" destdir="${classes}"/>
</target>
<!-- 打war包-->
<target name="war" depends="compile">
<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">
<!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个
文件
夹-->
<fileset dir="WebRoot" includes="**/*.jsp"/>
<!-- 拷贝lib目录下的
jar
包-->
<lib dir="${lib}"/>
<!-- 拷贝build/classes下的class
文件
-->
<classesdir="${classes}"/>
</target>
</project>
各target的作用在内容中已经进行说明,在此不再赘述。运行该build
文件
,更新目录后,可看到在build目录下
生成
了antwebproject.war
文件
,解开后可看到其目录结构如下:
--META-INF
--MANIFEST.MF
--index.jsp
--WEB-INF
--lib
--log4j-1.2.9.
jar
--classes
--HelloWorld.class
--web.xml
读者可以将该war包拷贝到Tomcat的目录下看一下运行结果。
五. 总结
在本文中,笔者由浅至深详细描述了Ant的安装与配置、关键元素和常用任务。并通过实例讲述了Ant在我们
Java
项目中的应用,讲述了
编译
、运行
java
程序,以及打
jar
包、war包等知识,引领读者进入Ant的奇妙世界。在本文中可以看到,Ant在自动构建和部署
Java
程序方面方便易用,而且非常灵活,不失为我们
Java
开发者的绝佳帮手
...\...\ModelCanvas.
java
~9~
...\...\ModelCanvas.
java
~10~
...\...\ModelCanvas.
java
~11~
...\
bak
...\classes\Thumbs.db
...\.......\map3.zdfy
...\.......\Map3.map
...\.......\package cache\unnamed package.dep2
...\.......\package cache
...\.......\MyShip.class
...\.......\Sprite.class
...\.......\MyMissile.class
...\.......\UFO.class
...\.......\ModelMIDlet.class
...\.......\UfoMissile.class
...\.......\burstImg.png
...\.......\myshipImg1.png
...\.......\n13.png
...\.......\point.png
...\.......\ufoImg.png
...\.......\ModelCanvas.class
...\classes
...\doc
...\jad-temp\ModelMIDlet.jad
...\jad-temp
...\src\point.png
...\...\ModelCanvas.
java
...\...\ModelMIDlet.
java
...\...\ufoImg.png
...\...\burstImg.png
...\...\MyMissile.
java
...\...\MyShip.
java
...\...\Sprite.
java
...\...\UFO.
java
...\...\UfoMissile.
java
...\...\n13.png
...\...\Thumbs.db
...\...\myshipImg1.png
...\...\map3.zdfy
...\...\META-INF\MANIFEST.MF
...\...\META-INF
...\src
详细的
java
学习总结,初学者可以去学习一下,对你很有帮助的
详细的
java
学习总结,初学者可以去学习一下,对你很有帮助的
详细的
java
学习总结,初学者可以去学习一下,对你很有帮助的
详细的
java
学习总结,初学者可以去学习一下,对你很有帮助的
Java
扩展机制在
Java
教程中被描述为一种“通过标准可扩展的方式来让
Java
平台上所有应用使用自定义API”。正如在理解扩展机制进行类加载中描述的,“扩展框架充分使用了类加载代理机制”。这种机制会在rt.
jar
引导(boot)类加载之后,标准classpath中的类加载之前,加载扩展类。
扩展目录的工作机制在类的加载上与classpath有点类似。对
Java
应用程序来说,所有扩展目录下J
UltraEdit文本编辑器是一款专业的文本编辑器软件。软件适用于Web开发者、技术作者、程序员、系统管理员、记事本替换、超级用户等多种用户。功能强大,,可以编辑文本、十六进制、ASCII 码,可以取代记事本,内建英文单字检查、C 及 VB 指令突显,并能实现同
时
编辑多个
文件
,甚至可以直接用来修改exe和dll
文件
,拥有强大的方案和工作区,有着可以处理复杂的软件开发的能力。软件界面美观简洁、简单全面、实用方便可快速上手,轻轻松松完成日常文本编辑功能,真正做到简单全面实用。是用户实现文本编辑功能的好帮手。
UltraEdit特点
-基于磁盘的文本编辑
-文档大小不受限制,即使是数兆字节的
文件
也只占用最小限度内存
-可同
时
打开和显示多个文档
-列模式编辑!!!插入列/删除/减切/添加序列
-拖放
编译
-
文件
排序(包括删除重复
文件
,忽略大小写,升序,降序)
-100,000 单词拼写检查器
-句法高亮显示-可配置,为 C/C , VB, HTML 和
Java
预配置
-在特定列以硬回车自动换行
-在现有文档的光标位置插入
文件
-
文件
管理器支持拖放功能
-可配置工具栏
-分隔栏窗口
-插入和叠印模式用于编辑
-多层次撤消和恢复
-UltraEdit 兼容 Windows 3.x CUA
-查找和替换——按下 shift 键后,允许选择插入符和查找目标之间的文本,可替换选定区域内的所有内容
-
文件
内查找,
文件
内替换
-转到行号/分页符
-显示器和打印机字体选择。(支持所有安装的字体,包括 TRUE-TYPE 字体)
-打印支持页眉、页脚、页边距和分页
-自动行缩近
-制表符设置
-支持自动换行
-十六进制编辑器——允许编辑任何二进制
文件
——支持十六进制剪切、复制和粘贴
-十六进制字符的插入和删除
-十六进制查找、替换和全部替换
-同
时
多窗口编辑
-全面的宏支持,包括保存和加载
-上下文相关帮助
-在原
文件
目录内自动备份
生成
的
文件
,扩展名为(.
BAK
)
-UltraEdit 在每次使用
时
均保持其屏幕位置
-行和列号显示(可禁用行号的显示)
-用鼠标右键可弹出菜单
-文本可切换大小写首字符大写
-UNIX/MAC 到 DOS 转换
-DOS 到 UNIX 转换
-自动检测 UNIX/MAC
文件
-自动换行模式转换到CR/LF's 允许用硬回车将自动换行写入
文件
-CR/LF's 转换到自动换行(从
文件
删除 CR/LF's)
-支持模板
-代码折叠
UltraEdit(文本编辑器)截图
Java
反
编译
是指将
Java
代码
编译
为
Java
字节码,然后将
Java
字节码恢复为源代码的过程,而
Java
反
编译
API则是实现这个过程的技术。
Java
反
编译
API包括许多库和工具,这些库和工具可以将
Java
字节码
编译
为
Java
源代码或反
编译
器API。例如,
Java
编译
器可以
编译
Java
源代码为
Java
字节码,而
Java
字节码反
编译
器可以将
Java
字节码反
编译
为
Java
源代码。
在反
编译
Java
字节码
时
,
Java
反
编译
器API需要处理的主要问题是文本编码和目录结构。在反
编译
过程中,反
编译
器需要识别每个类、方法和字段,并
生成
源代码
文件
来反映
Java
程序的结构和语义。
Java
反
编译
器API的使用并不困难,只需要了解
Java
类库和工具的基本原理。通过
Java
反
编译
器API,用户可以轻松地获取
Java
程序的源代码,并加以修改和优化。
总之,
Java
反
编译
器API是非常有用的工具,它为开发人员以及
Java
程序分析师提供了一个强大的工具,使他们能够从
Java
字节码中获取有关程序的信息,并进行必要的修改和优化。
CSDN-Ada助手:
关闭防火墙主机依然不能访问虚拟机(虚拟机能ping主机,主机ping虚拟机超时)
DQBPHfanfan:
关闭防火墙主机依然不能访问虚拟机(虚拟机能ping主机,主机ping虚拟机超时)
DQBPHfanfan:
关闭防火墙主机依然不能访问虚拟机(虚拟机能ping主机,主机ping虚拟机超时)
weixin_45786669:
使用name和value属性期望jsp:param标准操作
玄尺_007: