??xml version="1.0" encoding="utf-8" standalone="yes"?>
//1.AbsoluteConstraints.java
import java.awt.Dimension;
import java.awt.Point;
public class AbsoluteConstraints
implements java.io.Serializable {
static final long serialVersionUID = 5261460716622152494L;
public int x;
public int y;
public int width = -1;
public int height = -1;
public AbsoluteConstraints(Point pos) {
this(pos.x, pos.y);
}
public AbsoluteConstraints(int x, int y) {
this.x = x;
this.y = y;
}
public AbsoluteConstraints(Point pos, Dimension size) {
this.x = pos.x;
this.y = pos.y;
if (size != null) {
this.width = size.width;
this.height = size.height;
}
}
public AbsoluteConstraints(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public int getWidth() {
return width;
}
public int getHeight() {
return height;
}
public String toString() {
return super.toString() + " [x=" + x + ", y=" + y + ", width=" + width +
", height=" + height + "]";
}
}
//2.import java.awt.*;
public class AbsoluteLayout
implements LayoutManager2, java.io.Serializable {
static final long
serialVersionUID = -1919857869177070440L;
protected java.util.Hashtable constraints = new java.util.Hashtable();
public
void addLayoutComponent(String name, Component comp) {
throw new IllegalArgumentException();
}
public void
removeLayoutComponent(Component comp) {
constraints.remove(comp);
}
public Dimension preferredLayoutSize
(Container parent) {
int maxWidth = 0;
int maxHeight = 0;
for (java.util.Enumeration e =
constraints.keys(); e.hasMoreElements(); ) {
Component comp = (Component) e.nextElement();
AbsoluteConstraints
ac = (AbsoluteConstraints) constraints.get(comp);
Dimension size = comp.getPreferredSize();
int width =
ac.getWidth();
if (width == -1)
width = size.width;
int height = ac.getHeight();
if (height == -1)
height = size.height;
if (ac.x + width > maxWidth)
maxWidth = ac.x + width;
if (ac.y + height >
maxHeight)
maxHeight = ac.y + height;
}
return new Dimension(maxWidth, maxHeight);
}
public
Dimension minimumLayoutSize(Container parent) {
int maxWidth = 0;
int maxHeight = 0;
for
(java.util.Enumeration e = constraints.keys(); e.hasMoreElements(); ) {
Component comp = (Component) e.nextElement();
AbsoluteConstraints ac = (AbsoluteConstraints) constraints.get(comp);
Dimension size = comp.getMinimumSize();
int width = ac.getWidth();
if (width == -1)
width = size.width;
int height = ac.getHeight();
if (height == -1)
height = size.height;
if (ac.x + width > maxWidth)
maxWidth = ac.x + width;
if
(ac.y + height > maxHeight)
maxHeight = ac.y + height;
}
return new Dimension(maxWidth, maxHeight);
}
public void layoutContainer(Container parent) {
for (java.util.Enumeration e = constraints.keys();
e.hasMoreElements(); ) {
Component comp = (Component) e.nextElement();
AbsoluteConstraints ac =
(AbsoluteConstraints) constraints.get(comp);
Dimension size = comp.getPreferredSize();
int width = ac.getWidth();
if (width == -1)
width = size.width;
int height = ac.getHeight();
if (height == -1)
height = size.height;
comp.setBounds(ac.x, ac.y, width, height);
}
}
public void addLayoutComponent
(Component comp, Object constr) {
if (! (constr instanceof AbsoluteConstraints))
throw new
IllegalArgumentException();
constraints.put(comp, constr);
}
public Dimension maximumLayoutSize(Container
target) {
return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
}
public float getLayoutAlignmentX
(Container target) {
return 0;
}
public float getLayoutAlignmentY(Container target) {
return 0;
}
public void invalidateLayout(Container target) {}
}
// 3DateField.java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Insets;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.net.URL;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.awt.*;
public final class DateField
extends Panel {
private static final long serialVersionUID = 1L;
private final TextField dateText = new TextField(12);
private final Button dropdownButton = new Button();
private DatePicker dp;
private Dialog dlg;
Point origin = new Point();
final class Listener
extends ComponentAdapter {
public void componentHidden(final ComponentEvent evt) {
final Date dt = ( (DatePicker) evt.getSource()).getDate();
if (null != dt)
dateText.setText(dateToString(dt));
dlg.dispose();
}
}
public DateField() {
super();
init();
}
public DateField(final Date initialDate) {
super();
init();
dateText.setText(dateToString(initialDate));
}
public Date getDate() {
return stringToDate(dateText.getText());
}
public void setDate(Date date) {
String v = dateToString(date);
if (v == null) {
v = "";
}
dateText.setText(v);
}
private void init() {
setLayout(new BorderLayout());
dateText.setText("");
dateText.setEditable(false);
dateText.setBackground(new Color(255, 255, 255));
add(dateText, BorderLayout.CENTER);
dropdownButton.setLabel("选择");
dropdownButton.setBackground(Color.yellow);
dropdownButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onButtonClick(evt);
}
});
add(dropdownButton, BorderLayout.EAST);
}
private void onButtonClick(final java.awt.event.ActionEvent evt) {
if ("".equals(dateText.getText()))
dp = new DatePicker();
else
dp = new DatePicker(stringToDate(dateText.getText()));
dp.addComponentListener(new Listener());
final Point p = dateText.getLocationOnScreen();
p.setLocation(p.getX(), p.getY() - 1 + dateText.getSize().getHeight());
dlg = new Dialog(new Frame(), true);
dlg.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
origin.x = e.getX();
origin.y = e.getY();
}
});
dlg.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = dlg.getLocation();
dlg.setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y);
}
});
dlg.setLocation(p);
dlg.setResizable(false);
dlg.setUndecorated(true);
dlg.add(dp);
dlg.pack();
dlg.setVisible(true);
}
private static String dateToString(final Date dt) {
if (null != dt)
return DateFormat.getDateInstance(DateFormat.LONG).format(dt);
return null;
}
private static Date stringToDate(final String s) {
try {
return DateFormat.getDateInstance(DateFormat.LONG).parse(s);
}
catch (ParseException e) {
return null;
}
}
public static void main(String[] args) {
Dialog dlg = new Dialog(new Frame(), true);
DateField df = new DateField();
//dlg.getContentPane().add(df);
dlg.add(df);
dlg.pack();
dlg.setVisible(true);
System.out.println(df.getDate().toString());
System.exit(0);
}
}
//4.DatePicker.java
import java.awt.*;
import java.awt.event.*;
import java.util.GregorianCalendar;
import java.util.Date;
import java.util.Calendar;
import java.text.DateFormat;
import java.text.FieldPosition;
/*
import javax.swing.*;
import javax.swing.plaf.BorderUIResource;
*/
public final class DatePicker
extends Panel {
private static final long serialVersionUID = 1L;
private static final int startX = 10;
private static final int startY = 60;
private static final Font smallFont = new Font("Dialog", Font.PLAIN, 10);
private static final Font largeFont = new Font("Dialog", Font.PLAIN, 12);
private static final Insets insets = new Insets(2, 2, 2, 2);
private static final Color highlight = Color.YELLOW;//new Color(255, 255, 204);
private static final Color white = new Color(255, 255, 255);
private static final Color gray = new Color(204, 204, 204);
private Component selectedDay = null;
private GregorianCalendar selectedDate = null;
private GregorianCalendar originalDate = null;
private boolean hideOnSelect = true;
private final Button backButton = new Button();
private final Label monthAndYear = new Label();
private final Button forwardButton = new Button();
private final Label[] dayHeadings = new Label[] {
new Label("?),
new Label("一"),
new Label("?),
new Label("?),
new Label("?),
new Label("?),
new Label("?)};
private final Label[][] daysInMonth = new Label[][] {
{
new Label(), new Label(),
new Label(), new Label(),
new Label(), new Label(),
new Label()}
, {
new Label(),
new Label(), new Label(),
new Label(), new Label(),
new Label(), new Label()}
, {
new Label(), new Label(),
new Label(), new Label(),
new Label(), new Label(),
new Label()}
, {
new Label(),
new Label(), new Label(),
new Label(), new Label(),
new Label(), new Label()}
, {
new Label(), new Label(),
new Label(), new Label(),
new Label(), new Label(),
new Label()}
, {
new Label(),
new Label(), new Label(),
new Label(), new Label(),
new Label(), new Label()}
};
private final Button todayButton = new Button();
private final Button cancelButton = new Button();
public DatePicker() {
super();
selectedDate = getToday();
init();
}
public DatePicker(final Date initialDate) {
super();
if (null == initialDate)
selectedDate = getToday();
else
(selectedDate = new GregorianCalendar()).setTime(initialDate);
originalDate = new GregorianCalendar(selectedDate.get(Calendar.YEAR),
selectedDate.get(Calendar.MONTH),
selectedDate.get(Calendar.DATE));
init();
}
public boolean isHideOnSelect() {
return hideOnSelect;
}
public void setHideOnSelect(final boolean hideOnSelect) {
if (this.hideOnSelect != hideOnSelect) {
this.hideOnSelect = hideOnSelect;
initButtons(false);
}
}
public Date getDate() {
if (null != selectedDate)
return selectedDate.getTime();
return null;
}
private void init() {
setLayout(new AbsoluteLayout());
/*
this.setMinimumSize(new Dimension(161, 226));
this.setMaximumSize(getMinimumSize());
this.setPreferredSize(getMinimumSize());
this.setBorder(new BorderUIResource.EtchedBorderUIResource());
*/
this.setSize(new Dimension(161, 226));
backButton.setFont(smallFont);
backButton.setLabel("<");
// backButton.setSize(insets);
// backButton.setDefaultCapable(false);
backButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onBackClicked(evt);
}
});
add(backButton, new AbsoluteConstraints(10, 10, 20, 20));
monthAndYear.setFont(largeFont);
monthAndYear.setAlignment((int)TextField.CENTER_ALIGNMENT);
monthAndYear.setText(formatDateText(selectedDate.getTime()));
add(monthAndYear, new AbsoluteConstraints(30, 10, 100, 20));
forwardButton.setFont(smallFont);
forwardButton.setLabel(">");
// forwardButton.setMargin(insets);
// forwardButton.setDefaultCapable(false);
forwardButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onForwardClicked(evt);
}
});
add(forwardButton, new AbsoluteConstraints(130, 10, 20, 20));
int x = startX;
for (int ii = 0; ii < dayHeadings.length; ii++) {
// dayHeadings[ii].setOpaque(true);
dayHeadings[ii].setBackground(Color.LIGHT_GRAY);
dayHeadings[ii].setForeground(Color.WHITE);
dayHeadings[ii].setAlignment((int)TextField.CENTER_ALIGNMENT);
// dayHeadings[ii].setHorizontalAlignment(Label.CENTER);
add(dayHeadings[ii], new AbsoluteConstraints(x, 40, 21, 21));
x += 20;
}
x = startX;
int y = startY;
for (int ii = 0; ii < daysInMonth.length; ii++) {
for (int jj = 0; jj < daysInMonth[ii].length; jj++) {
// daysInMonth[ii][jj].setOpaque(true);
daysInMonth[ii][jj].setBackground(white);
daysInMonth[ii][jj].setFont(smallFont);
// daysInMonth[ii][jj].setHorizontalAlignment(Label.CENTER);
daysInMonth[ii][jj].setText("");
daysInMonth[ii][jj].addMouseListener(new MouseAdapter() {
public void mouseClicked(final MouseEvent evt) {
onDayClicked(evt);
}
});
add(daysInMonth[ii][jj], new AbsoluteConstraints(x, y, 21, 21));
x += 20;
}
x = startX;
y += 20;
}
initButtons(true);
calculateCalendar();
}
private void initButtons(final boolean firstTime) {
if (firstTime) {
final Dimension buttonSize = new Dimension(68, 24);
todayButton.setLabel("今天");
todayButton.setSize(buttonSize);
/*
todayButton.setMargin(insets);
todayButton.setMaximumSize(buttonSize);
todayButton.setMinimumSize(buttonSize);
todayButton.setPreferredSize(buttonSize);
todayButton.setDefaultCapable(true);
todayButton.setSelected(true);
*/
todayButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onToday(evt);
}
});
cancelButton.setLabel("取消");
cancelButton.setSize(buttonSize);
/*
cancelButton.setMargin(insets);
cancelButton.setMaximumSize(buttonSize);
cancelButton.setMinimumSize(buttonSize);
cancelButton.setPreferredSize(buttonSize);
*/
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onCancel(evt);
}
});
}
else {
this.remove(todayButton);
this.remove(cancelButton);
}
if (hideOnSelect) {
add(todayButton, new AbsoluteConstraints(25, 190, 52, -1));
add(cancelButton, new AbsoluteConstraints(87, 190, 52, -1));
}
else {
add(todayButton, new AbsoluteConstraints(55, 190, 52, -1));
}
}
private void onToday(final java.awt.event.ActionEvent evt) {
selectedDate = getToday();
setVisible(!hideOnSelect);
if (isVisible()) {
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
}
private void onCancel(final ActionEvent evt) {
selectedDate = originalDate;
setVisible(!hideOnSelect);
}
private void onForwardClicked(final java.awt.event.ActionEvent evt) {
final int day = selectedDate.get(Calendar.DATE);
selectedDate.set(Calendar.DATE, 1);
selectedDate.add(Calendar.MONTH, 1);
selectedDate.set(Calendar.DATE,
Math.min(day, calculateDaysInMonth(selectedDate)));
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
private void onBackClicked(final java.awt.event.ActionEvent evt) {
final int day = selectedDate.get(Calendar.DATE);
selectedDate.set(Calendar.DATE, 1);
selectedDate.add(Calendar.MONTH, -1);
selectedDate.set(Calendar.DATE,
Math.min(day, calculateDaysInMonth(selectedDate)));
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
private void onDayClicked(final java.awt.event.MouseEvent evt) {
final Label fld = (Label) evt.getSource();
if (!"".equals(fld.getText())) {
fld.setBackground(highlight);
selectedDay = fld;
selectedDate.set(Calendar.DATE, Integer.parseInt(fld.getText()));
setVisible(!hideOnSelect);
}
}
private static GregorianCalendar getToday() {
final GregorianCalendar gc = new GregorianCalendar();
gc.set(Calendar.HOUR_OF_DAY, 0);
gc.set(Calendar.MINUTE, 0);
gc.set(Calendar.SECOND, 0);
gc.set(Calendar.MILLISECOND, 0);
return gc;
}
private void calculateCalendar() {
if (null != selectedDay) {
selectedDay.setBackground(white);
selectedDay = null;
}
final GregorianCalendar c = new GregorianCalendar(selectedDate.get(Calendar.
YEAR), selectedDate.get(Calendar.MONTH), 1);
final int maxDay = calculateDaysInMonth(c);
final int selectedDay = Math.min(maxDay, selectedDate.get(Calendar.DATE));
int dow = c.get(Calendar.DAY_OF_WEEK);
for (int dd = 0; dd < dow; dd++) {
daysInMonth[0][dd].setText("");
}
int week;
do {
week = c.get(Calendar.WEEK_OF_MONTH);
dow = c.get(Calendar.DAY_OF_WEEK);
final Label fld = this.daysInMonth[week - 1][dow - 1];
fld.setText(Integer.toString(c.get(Calendar.DATE)));
if (selectedDay == c.get(Calendar.DATE)) {
fld.setBackground(highlight);
this.selectedDay = fld;
}
if (c.get(Calendar.DATE) >= maxDay)
break;
c.add(Calendar.DATE, 1);
}
while (c.get(Calendar.DATE) <= maxDay); week--;
for (int ww = week; ww < daysInMonth.length; ww++) {
for (int dd = dow; dd < daysInMonth[ww].length; dd++) {
daysInMonth[ww][dd].setText("");
}
dow = 0;
}
c.set(Calendar.DATE, selectedDay);
selectedDate = c;
}
private static int calculateDaysInMonth(final Calendar c) {
int daysInMonth = 0;
switch (c.get(Calendar.MONTH)) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
daysInMonth = 31;
break;
case 3:
case 5:
case 8:
case 10:
daysInMonth = 30;
break;
case 1:
final int year = c.get(Calendar.YEAR);
daysInMonth = (0 == year % 1000) ? 29 : (0 == year % 100) ? 28 :
(0 == year % 4) ? 29 : 28;
break;
}
return daysInMonth;
}
private static String formatDateText(final Date dt) {
final DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
final StringBuffer mm = new StringBuffer();
final StringBuffer yy = new StringBuffer();
final FieldPosition mmfp = new FieldPosition(DateFormat.MONTH_FIELD);
final FieldPosition yyfp = new FieldPosition(DateFormat.YEAR_FIELD);
df.format(dt, mm, mmfp);
df.format(dt, yy, yyfp);
return (mm.toString().substring(mmfp.getBeginIndex(), mmfp.getEndIndex()) +
"?" +
yy.toString().substring(yyfp.getBeginIndex(), yyfp.getEndIndex()) +
"q?);
}
}
http://java.sun.com/j2ee/1.4/download.html #tutorial
下蝲j2eetutorial压羃包ƈ其解压~?假定你解压的路径?CODE><INSTALL>/j2eetutorial14,打开例子的配|文?CODE><INSTALL>/j2eetutorial14/examples/common/build.properties
Multi-plicity |
||||
Enterprise Bean |
||
Session Bean |
|||
Coded Name |
|||||
Coded Name |
|||||
Coded Name |
|||||
Coded Name |
EJB Type |
Interface |
|
Session |
Remote |
||
Session |
Remote |
Coded Name |
EJB Type |
Interface |
|
Session |
Remote |
||
Session |
Remote |
||
Session |
Remote |
2.
dDukesBankACJAR
应用E序客户端模块到DukesBankApp
3.
dDukesBankEJBJAR即EJB模块到DukesBankApp
4.
dDukesBankWAR即Web模块到DukesBankApp
5.
d安全角色(
security roles) 名ؓ bankAdmin
?bankCustomer
Z业beand以下的安全设|?security settings)
AccountControllerBean:
在Security标签,方法removeCustomerFromAccount
, removeAccount
, createAccount
, ?addCustomerToAccount
的限制访问权限的安全角色为bankAdmin ;?/CODE>General标签, 点击Sun-specific Settings,然后在弹出的对话框中点击IOR, 在Context对话框将Required讄为true, realm讄为file.
CustomerControllerBean:
在Security标签,方法getCustomersOfAccount
, createCustomer
, getCustomersOfLastName
, setName
, removeCustomer
, ?setAddress
的限制访问权限的安全角色为bankAdmin ;?/CODE>General标签, 点击Sun-specific Settings,然后在弹出的对话框中点击IOR, 在Context对话框将Required讄为true, realm讄为file.
c.
TxControllerBean
Q在Security标签,方法getTxsOfAccount
, makeCharge
, deposit
, transferFunds
, withdraw
, ?makePayment
的限制访问权限的安全角色为bankCustomer
如果你还没有启动应用E序服务器(
Application Server.Q那你现在就启动?kesBankApp
对话框选中
Return Client Jar卌回客LJar选项.<INSTALL>/j2eetutorial14/examples/bank/
目录?/FONT>2.
如果是要q行英文版本的客Lp入以下命令: appclient -client DukesBankAppClient.jarDukesBankAppClient.jar
q个文g是你刚才部v旉中q回客户端JAR而返回的文gQ?/CODE>
3.
如果惌行西班牙语版本的客户端则q行以下命oQ?BR>appclient -client DukesBankAppClient.jar es
在弹出的d框中Q输入用户名bankadmin密码?j2eeQ然后你可以看C下的界面Q?BR>
2.
在登录页面,输入用户?00Q密码j2eeq提?
3.
当你选择
Account List,则你会看C下画面.
<INSTALL>/j2eetutorial14/examples/bank/src/com/sun/ebank/web
目录?
内容如下Q?BR>package com.sun.ebank.web;开发企业的应用程序需要搭建好J2EE的运行环境。其实也是?/SPAN>SUN公司的网站上?/SPAN>DOWN?/SPAN>J2EE 1.4 SDK开发工具包。然后双d装文Ӟ如果你下载的版本与我的一栗那么这个安装文件就会是q个名字Q?/SPAN>j2eesdk-1_4-dr-windows-eval.exe。同L我们也将J2EE SDK安装?/SPAN>C盘根目录下?/SPAN>
需要特别提醒大家的是:J2EEq行环境的搭建是?/SPAN>J2SEq行环境的搭Zؓ基础的。其实想也想得到Z么。如果没?/SPAN>JDKQ哪里来的编译和q行命o呢(JAVA?/SPAN>javacQ。安装完J2EE 1.4 SDK包后Q具体的讄与测试步骤如下:
1?SPAN style="FONT-WEIGHT: normal; FONT-STYLE: normal; FONT-FAMILY: Times New Roman; FONT-VARIANT: normal"> 首先叛_PATH变量里添?/SPAN>J2EE SDK?/SPAN>BIN目录。如Q?/SPAN>C:\j2sdkee1.3.1\bin。如何往里面dQ前面已l讲q?/SPAN>
2?SPAN style="FONT-WEIGHT: normal; FONT-STYLE: normal; FONT-FAMILY: Times New Roman; FONT-VARIANT: normal"> 然后新徏两个变量Q一个是JAVA_HOMEQ变量gؓQ?/SPAN>JDK的安装目录。另一个是J2EE_HOMEQ变量gؓJ2EE SDK的安装目录。如囄Q?/SPAN>
4?SPAN style="FONT-WEIGHT: normal; FONT-STYLE: normal; FONT-FAMILY: Times New Roman; FONT-VARIANT: normal"> 所有的工作做完以后。大家可以通过以下方式验证一下我们的J2EE环境是否已经搭徏成功。在命o提示W状态下输入命oQ?/SPAN>J2EE Q?/SPAN>Verbose。如果屏q的最下面看到了这样一句话J2EE server startup complete.那就表示J2EE服务器成功启动了。在我们?/SPAN>J2EEE序要布|和q行的过E中。服务器一直启动着?/SPAN>
另外提一下,如果你需要停?/SPAN>J2EE服务器,必须再开一个命令窗口,q运行如下命令:J2EE –STOP。成功运行后Q将会有提示语句。再ȝ看启动服务器的那个窗口,你将可以看到提示W了?/SPAN>
5?SPAN style="FONT-WEIGHT: normal; FONT-STYLE: normal; FONT-FAMILY: Times New Roman; FONT-VARIANT: normal"> q样做了q不够,我们q需要到|页里去试一下服务器默认面是否能够正常昄Q这h能保证我们能够进WEBE序的开发。双?/SPAN>IE览器的图标Q在地址栏里输入Q?/SPAN>http://localhost:8000,如果你能看到以下H口中的内容Q那p明你?/SPAN>J2EE环境已经搭徏成功。需要说明一点,?/SPAN>localhost:后的?/SPAN>J2EE服务器提供的WEB服务端口受?/SPAN>
需要提醒大家的是:当你打开|页之前Q确认你?/B>J2EE服务器是启动着的?/SPAN>如果你机器上没有安装|卡Q或是网卡安装不正确Q也会导致无法打开J2EE服务器默认页面?/SPAN>
<!--(2)建立一些属性,以供下边的操作用?-->
<property name="root" value="./" />
<property name="deploy_path" value="d:/deploy" />
<property name="srcfile" value="d:/srcfile" />
<target name="all" depends="compile,deploy"/>
<!--(3)Ҏ据库的操?demo.ddl中写的是sql语句 driver,url,userid,password随具体情况设|?->
<!-- Oracle -->
<target name="db_setup_oracle" description="Database setup for Oracle">
<antcall target="check_params_results"/>
<sql driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.0.1:1521:oa"
userid="oa" password="oa"
onerror="continue"
print="yes"
src="./demo.ddl"/>
</target>
<!--(4)javac~译 -->
<target name="compile">
<javac srcdir="${srcfile}"
destdir="${root}/oa/"
includes="*.java"
classpath="${CLASSPATH};${CLIENT_CLASSES}/utils_common.jar" <!--CLASSPATH和CLIENT_CLASSES是环境变?->
/>
</target>
<target name="deploy" depends="compile">
<!-- Create the time stamp -->
<tstamp/>
<!--(5)删除目录-->
<!--(6)建立目录-->
<delete dir="${root}/dist/"/>
<mkdir dir="${root}/dist/"/>
<delete dir="${deploy_path}"/>
<mkdir dir="${deploy_path}"/>
<!--(7)拯文g?->
<copy todir="${root}/dist/">
<fileset dir="${root}/oa/">
<include name="*.class"/>
</fileset>
</copy&g