??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产午夜精品理论片在线播放,国产亚洲成归v人片在线观看,久久久久亚洲av成人无码电影http://www.tkk7.com/tangbao/category/7432.htmlzh-cnFri, 02 Mar 2007 07:36:31 GMTFri, 02 Mar 2007 07:36:31 GMT60Axis WSDD Reference http://www.tkk7.com/tangbao/articles/32129.htmlp包p包Thu, 23 Feb 2006 09:06:00 GMThttp://www.tkk7.com/tangbao/articles/32129.htmlhttp://www.tkk7.com/tangbao/comments/32129.htmlhttp://www.tkk7.com/tangbao/articles/32129.html#Feedback0http://www.tkk7.com/tangbao/comments/commentRss/32129.htmlhttp://www.tkk7.com/tangbao/services/trackbacks/32129.htmlAxis WSDD Reference

The SOAP tool Apache Axis offers a lot of features which require the use of a deployment descriptor. This reference describes all the elements and attributes which can be used in a WSDD deployment descriptor.

Elements

All Elements belong to the http://xml.apache.org/axis/wsdd/ namespace.



p包 2006-02-23 17:06 发表评论
]]>
Java如何调用可执行文件和批处理命?/title><link>http://www.tkk7.com/tangbao/articles/32126.html</link><dc:creator>p包</dc:creator><author>p包</author><pubDate>Thu, 23 Feb 2006 09:02:00 GMT</pubDate><guid>http://www.tkk7.com/tangbao/articles/32126.html</guid><wfw:comment>http://www.tkk7.com/tangbao/comments/32126.html</wfw:comment><comments>http://www.tkk7.com/tangbao/articles/32126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tangbao/comments/commentRss/32126.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tangbao/services/trackbacks/32126.html</trackback:ping><description><![CDATA[<FONT color=#993300 size=2>   Java 是种跨^台的语言Q我们经常碰到需要通过Java调用windows下某些程序。有些第三方厂商如(ANTQ,也提供了(jin)调用windows下可执行E序的方法,但我们往往需要调用一些批处理命o(h)。而java 却不提供?BR>    q里Q我采用一U变相的调用Ҏ(gu)Q得Java 能调用批处理命o(h)。如果?zhn)有更好的?gu)Q希望?zhn)能告诉我?BR><BR>前期准备[/</FONT><FONT color=#993300 size=2>B]<BR>    Quick Batch File (De)Compiler <BR>    Q何BAT、CMD批处理脚本编译ؓ(f)EXE文gQ?nbsp;<BR><BR>开?BR>1Q?nbsp;   q行exe 文g<BR>Java JDK里已l提供了(jin)调用的方法,不在累赘Q代码如下?BR><BR>    try {<BR>        String command = "notepad";<BR>        Process child = Runtime.getRuntime().exec(command);<BR>    } catch (IOException e) {<BR>    <BR>    }<BR>    <BR><BR>2Q?nbsp;   q行 batQ批处理Q?nbsp;文g<BR>    Java Ҏ(gu)处理文gq不支持。刚开始一直在研究 Java     如何调用批处理文Ӟ始终找不到解x法。后来只好绕q批处理Q考虑如何批处理转换为exe可执行文件。然后再通过Java调用可执行文件?BR><BR>    在Google上搜索一下,扑ֈQuick Batch File (De)CompilerQ可以将MBAT、CMD批处理脚本编译ؓ(f)EXE文g。用了(jin)一下,果然可以?BR><BR>    Quick Batch File (De)Compiler使用非常单:(x)<BR>    Quickbfc 文g?bat 文g?exeQ将批处理命令编译ؓ(f)可执行文Ӟ(j) <BR>    quickbfd 文g?exe 文g?batQ将可执行文件反~译为批处理命o(h)Q?BR><BR>        然后Q我们再按第一U方法通过Java 调用Q即可?BR></FONT><img src ="http://www.tkk7.com/tangbao/aggbug/32126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tangbao/" target="_blank">p包</a> 2006-02-23 17:02 <a href="http://www.tkk7.com/tangbao/articles/32126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Maven 资源库介l(开发包描述Q[转] http://www.tkk7.com/tangbao/articles/32125.htmlp包p包Thu, 23 Feb 2006 09:01:00 GMThttp://www.tkk7.com/tangbao/articles/32125.htmlhttp://www.tkk7.com/tangbao/comments/32125.htmlhttp://www.tkk7.com/tangbao/articles/32125.html#Feedback0http://www.tkk7.com/tangbao/comments/commentRss/32125.htmlhttp://www.tkk7.com/tangbao/services/trackbacks/32125.htmlMaven 资源库介l(开发包描述Q?

      最q用mavenQ才发现自己掌握的java开发包太少啦,于是将http://www.ibiblio.org/maven/ 的开发包加上?jin)描q。这可花?jin)我三个晚上Q也希望大家自׃(jin)解的开发包加进来,让java开发包遍地开花,大家也可具体开发包谈谈自己使用?j)得?也希望斑竹多鼓励啦,壮我java开发h员军威(有这么开发包q怕谁Q,我们java开发h员有C啦Q?/P>

http://www.ibiblio.org/maven/ 开发包描述Q可能丢?jin)一点)(j)Q?BR>HTTPClient/ a complete http client library http://www.innovation.ch/java/HTTPClient/
aelfred/ A free Java-based XML parser http://mindprod.com/jgloss/aelfred.html
altrmi/ AltRMI is a from-scratch replacement for RMI http://incubator.apache.org/projects/altrmi
ant-contrib/ Useful little Ant tasks http://sourceforge.net/projects/ant-contrib
ant-doxygen/ Useful little Ant tasks http://sourceforge.net/projects/ant-doxygen
ant/ build system http://ant.apache.org/
antlr/ ANother Tool for Language Recognition http://www.antlr.org/
anttex/ TeX Extensions to ANT http://ls10-www.cs.uni-dortmund.de/~alfert/ant-extension/
aptconvert/ convert the APT format to HTML, XHTML, PDF... http://www.xmlmind.com/aptconvert.html
ashkelon/ navigating JavaDoc-like information about classes, members etc. http://sourceforge.net/projects/ashkelon/
asm/ Java bytecode manipulation framework http://asm.objectweb.org/
aspectj/ seamless aspect-oriented extension to java http://www.eclipse.org/aspectj/
avalon/ complete platform for component programming http://avalon.apache.org/
axion/ a small, fast, open source relational database system http://axion.tigris.org/
axis/ implementation of the SOAP http://ws.apache.org/axis/
batik/ based toolkit for svg http://xml.apache.org/batik/
bcel/ Byte Code Engineering Library http://jakarta.apache.org/bcel/
blissed/ Java state-machine framework http://www.sourceforge.net/projects/blissed
bouncycastle/ Crypto package is a Java implementation of cryptographic algorithms http://www.bouncycastle.org/documentation.html
bsf/ Bean Scripting Framework http://jakarta.apache.org/bsf/
bsh/ Lightweight Scripting for Java http://www.beanshell.org/
burlap/ Burlap web service protocol http://www.caucho.com/burlap/
cactus/ simple test framework for unit testing server-side java code http://jakarta.apache.org/cactus/
castor/ open source data binding framework http://castor.exolab.org/
cglib/ powerful, high performance and quality Code Generation Library http://cglib.sourceforge.net/
checkstyle/ check Java code that adheres to a coding standardc http://checkstyle.sourceforge.net/
classworlds/ framework for container developers who require complex manipulation of Java's ClassLoaders http://classworlds.codehaus.org/
clover/ code coverage analysis tool http://www.thecortex.net/clover/
com.walding/ Montage is a web photoalbum http://projects.walding.com/montage/
commons-beanutils/ http://jakarta.apache.org/commons/beanutils.html
commons-betwixt/ an XML introspection mechanism for mapping beans to XML in a flexible way http://jakarta.apache.org/commons/betwixt/index.html
commons-cli/ Command Line Interface http://jakarta.apache.org/commons/cli/index.html
commons-codec/ provides implementations of common encoders and decoders such as Base64, Hex, various phonetic encodings, and URLs http://jakarta.apache.org/commons/codec/index.html
commons-collections/ java Collections API http://jakarta.apache.org/commons/collections.html
commons-configuration/ a project to provide a generic Configuration interface and allow the source of the values to vary. http://jakarta.apache.org/commons/sandbox/configuration/index.html
commons-daemon/ http://jakarta.apache.org/commons/daemon/
commons-dbcp/ connection pool http://jakarta.apache.org/commons/dbcp/
commons-digester/ configure an XML -> Java object mapping module http://jakarta.apache.org/commons/digester.html
commons-discovery/ discovering, or finding, implementations for pluggable interfaces http://jakarta.apache.org/commons/discovery.html
commons-el/ the JSP 2.0 Expression Language Interpreter from Apache. http://jakarta.apache.org/commons/el.html
commons-email/ provide send mail function http://jakarta.apache.org/commons/sandbox/email/
commons-fileupload/ FileUpload package http://jakarta.apache.org/commons/fileupload/index.html
commons-grant/ a small collection of hacks to make using Jakarta Ant in an embedded envinronment much easier. http://jakarta.apache.org/commons/sandbox/grant/
commons-graph/ http://lsd.student.utwente.nl/gump/jakarta-commons-sandbox/commons-graph.html
commons-http/ http://lsd.student.utwente.nl/gump/jakarta-commons-sandbox/commons-http.html
commons-httpclient/ HttpClient to provide the core HTTP functionality http://jakarta.apache.org/commons/httpclient/index.html
commons-io/ package of Java utility classes for java.io's hierarchy http://jakarta.apache.org/commons/sandbox/io/
commons-jdbc2pool/
commons-jelly/ a tool for turning XML into executable code http://jakarta.apache.org/commons/jelly/index.html
commons-jexl/ Jexl is an expression language engine designed for easy embedding in applications and frameworks http://jakarta.apache.org/commons/jexl.html
commons-jux/ A common set of JUnit extensions, largely for test inheritance http://jakarta.apache.org/commons/sandbox/jux/
commons-jxpath/ a simple interpreter of an expression language called XPath http://jakarta.apache.org/commons/jxpath/index.html
commons-lang/ provide enough methods for manipulation of its core classes http://jakarta.apache.org/commons/lang.html
commons-latka/ a functional (end-to-end) testing tool http://jakarta.apache.org/commons/latka/index.html
commons-logging/ log toolkit
commons-messenger/ JMS (Java Message Service) framework which makes it very easy to use JMS in Web Service and Web Application environments. http://jakarta.apache.org/commons/sandbox/messenger/index.html
commons-modeler/ designed to make this process fairly painless -- the required metadata is configured from an XML description of each Model MBean to be supported http://jakarta.apache.org/commons/modeler.html
commons-net/ an Internet protocol suite Java library http://jakarta.apache.org/commons/net/index.html
commons-pool/ Object-pooling API http://jakarta.apache.org/commons/pool/
commons-resources/ providing customized MessageResources implementations that can access resource strings from any desired static or dynamically updated collection http://jakarta.apache.org/commons/sandbox/resources/index.html
commons-sql/ a component for working with databases and generating DDL http://jakarta.apache.org/commons/sandbox/sql/index.html
commons-threadpool/ a component for working with pools of threads and asynchronously executing tasks. http://jakarta.apache.org/commons/sandbox/threadpool/index.html
commons-util/ http://lsd.student.utwente.nl/gump/jakarta-commons-sandbox/commons-util.html
commons-validator/ http://jakarta.apache.org/commons/validator/index.html
commons-vfs/ a single API for accessing various different file systems http://jakarta.apache.org/commons/sandbox/vfs/index.html
commons-xo/ http://lsd.student.utwente.nl/gump/jakarta-commons-sandbox/commons-xo.html
concurrent/ Concurrent Programming in Java http://gee.cs.oswego.edu/dl/cpj/
cornerstone-connection/ provides a facility to listen for incoming socket connections http://avalon.apache.org/components/components/connection.html
cornerstone-datasour..> provides a way to select DataSourceComponent http://avalon.apache.org/components/components/datasource.html
cornerstone-scheduler/ provides a services supporting the scheduling of activities to occur an certain intervals http://avalon.apache.org/components/components/scheduler.html
cornerstone-sockets/ provides a way to lookup a factory for server of client sockets http://avalon.apache.org/components/components/sockets.html
cornerstone-store/ provides a way to store named Objects or Streams without knowing how they are stored http://avalon.apache.org/components/components/store.html
cornerstone-threads/ provides a way get default or named Thread Pool http://avalon.apache.org/components/components/threads.html
crimson/ Crimson is a Java XML parser http://xml.apache.org/crimson/
crossdb/ provide cross database tools for manipulating all major databases http://sourceforge.net/projects/crossdb/
cryptix/ an international volunteer effort to produce robust, open-source cryptographic software libraries http://www.cryptix.org/
dbunit/ JUnit extension targeted for database-driven projects http://dbunit.sourceforge.net/
dnsjava/ an implementation of DNS in Java http://sourceforge.net/projects/dnsjava/
dom4j/ the flexible XML framework for Java http://www.dom4j.org/
drools/ augmented implementation of Forgy's Rete algorithm tailored for the object-oriented language of http://drools.org/
dtdparser/ DTD parsers for Java http://www.wutka.com/dtdparser.html
easymock/ a Java library that provides an easy way to use Mock Objects in unit testing with JUnit. http://sourceforge.net/projects/easymock
eclipse/ a kind of universal tool platform http://www.eclipse.org/
ecs/ enerating elements for various markup languages it directly supports HTML 4.0 and XML http://jakarta.apache.org/ecs/index.html
edenlib/ collection of Java libraries http://edenlib.sourceforge.net/
edtftp/ an entire FTP client library written in Java http://www.enterprisedt.com/downloads/ftp.html
ejb/ enterprise java bean http://java.sun.com/
excalibur/ contains a set of utilitiy projects used in the development of container facilities http://avalon.apache.org/excalibur/index.html
exist/ Open Source XML Database http://exist-db.org/
exml/ a simple, fast and comprehensive Java toolkit for parsing and manipulating XML documents http://www.themindelectric.com/products/
exolabcore/ informal organization working on the development of Open Source enterprise software projects http://www.exolab.org/
exteca/ an ontology-based technology written in Java for high-quality knowledge management and document categorisation http://sourceforge.net/projects/exteca
fastutil/ Small, fast type-specific maps, sets, and lists for Java http://fastutil.dsi.unimi.it/
fesi/ Free EcmaScript Interpreter http://www.lugrin.ch/fesi/javalib.html
findbugs/ A Bug Pattern Detector for Java http://www.cs.umd.edu/~pugh/java/bugs/
flux/ Servlet based framework http://jakarta.apache.org/turbine/
fop/ Formatting Objects Processor http://xml.apache.org/fop/
forehead/ a very small framework to assist in controlling the run-time ClassLoader hierarchy of Java applications http://forehead.werken.com/index.html
formproc/ Web Form Proccesing and Validation http://formproc.sourceforge.net/
foxtrot/ small but powerful framework for using threads with the JavaTM Foundation Classes http://foxtrot.sourceforge.net/
freebxml/ an initiative that aims to foster the development and adoption of ebXML http://www.freebxml.org/
freemarker/ is a "template engine"; a generic tool to generate text output (anything from HTML or RTF to autogenerated source code) based on templates http://freemarker.sourceforge.net/
fulcrum/ uses a proprietary concept of code templates that can be used as "building blocks" to construct efficient Java objects and applications http://www.acceltree.com/products.htm
genjar/ a specialized Ant task that builds jar files based on class dependencies http://sourceforge.net/projects/genjar/
geronimo-spec/ Apache's J2EE project http://www.apache.org/~jstrachan/geronimo/
gnu-regexp/ Regular Expressions for Java http://www.cacas.org/java/gnu/regexp/
graphlayout/ provides a hands-on way to visualize networks of interrelated information http://www.touchgraph.com/index.html
groovy/ Java Genetic Programming http://jgprog.sourceforge.net/
gsbase/ A collection of useful Java classes http://sourceforge.net/projects/genjar/
hessian/ binary web service protocol http://www.caucho.com/hessian/
hibernate/ powerful, ultra-high performance object/relational persistence and query service for Java http://www.hibernate.org/
hsqldb/ a relational database engine written in Java http://sourceforge.net/projects/hsqldb
httpunit/ a Java library for the automatic stimulation and testing of web applications http://sourceforge.net/projects/httpunit
isorelax/ Regular Language description for XML in java http://iso-relax.sourceforge.net/
itext/ generate documents in the Portable Document Format (PDF) and/or HTML. http://sourceforge.net/projects/itext
jacl/ a Tcl implementation in Java http://www.scriptics.com/java
jalopy/ source code formatter for the Sun Java programming language http://jalopy.sourceforge.net/
james/ Java Apache Mail Enterprise Server http://james.apache.org/
jarsync/ a Java implementation of the rsync algorithm http://jarsync.sourceforge.net/
java2html/ java library which converts any given Java component and subcomponent tree into its HTML representation http://sourceforge.net/projects/java2html
javacc/ is a parser/scanner generator for java https://javacc.dev.java.net/
javagroups/ Reliable group communication based on IP multicast and configurable protocol stack http://sourceforge.net/projects/javagroups
javahelp/ a full-featured, platform-independent, extensible help system http://java.sun.com/products/javahelp/
javassist/ (Java Programming Assistant) makes Java bytecode manipulation simple http://www.csg.is.titech.ac.jp/~chiba/javassist/
jaxen/ XPath engine written in Java http://sourceforge.net/projects/jaxen
jaxm/ XML Messaging (JAXM) Optional Package http://java.sun.com/xml/jaxm/
jaxp/ XML Processing http://java.sun.com/xml/jaxp/
jaxrpc/ XML-Based RPC http://java.sun.com/xml/jaxrpc/
jboss/ open source application server http://www.jboss.org/
jca/ J2EE Connector http://java.sun.com/j2ee/connector/
jce/ Java Cryptography Extension http://java.sun.com/products/jce/index.html
jcifs/ Common Internet File System (CIFS) for java http://jcifs.samba.org/
jcommon/ a collection of useful classes used by JFreeChart, JFreeReport and other projects http://www.jfree.org/jcommon/
jcoverage/ gives you the ability to write simple unit-tests for abstract classes (such as EJB 2.0 bean classes), http://jcoverage.com/
jcs/ a distributed caching system written in java for server-side java applications http://jakarta.apache.org/turbine/jcs/
jcvsii/ a CVS client application http://www.ice.com/java/jcvs/
jdbc/ provides cross-DBMS connectivity to a wide range of SQL databases http://java.sun.com/products/jdbc/index.html
jdbm/ a transactional persistence engine for Java http://jdbm.sourceforge.net/
jdepend/ traverses Java class file directories and generates design quality metrics for each Java package http://www.clarkware.com/software/JDepend.html
jdiff/ Javadoc doclet which emits an HTML report of all the packages and so on ,whhich are different (the "diff" part) when two Java APIs are compared http://sourceforge.net/projects/javadiff/
jdom/ Java-based solution for accessing, manipulating, and outputting XML data http://www.jdom.org/
jdring/ Java Alarm Scheduler http://webtools.dyade.fr/jdring/
jetty/ java weber server http://www.sourceforge.net/projects/jetty
jfreechart/ a class library, written in Java, for generating charts http://sourceforge.net/projects/jfreechart
jgen/ Code Generator http://www.etnasoft.com/jgen_introduction.html
jgraph/ the most powerful, lightweight, feature-rich, and thoroughly documented open-source graph component available for Java. http://sourceforge.net/projects/jgraph
jisp/ java indexed serialization package http://www.coyotegulch.com/jisp/index.html
jms/ Java Message Service http://java.sun.com/products/jms/
jndi/ Java Naming and Directory Interface http://java.sun.com/products/jndi/
jsch/ Java Secure Channel http://www.jcraft.com/jsch/
jsse/ Java Secure Socket Extension http://java.sun.com/products/jsse/
jstl/ JavaServer Pages Standard Tag Library http://java.sun.com/products/jsp/jstl/
jstyle/ is an automated Java code review tool http://www.mmsindia.com/jstyle.html
jta/ Java Transaction API Specification http://java.sun.com/products/jta/
jtidy/ a Java port of HTML Tidy, a HTML syntax checker and pretty printer http://sourceforge.net/projects/jtidy
junit-doclet/ JUnitDoclet http://www.junitdoclet.org/
junit/ java unit test http://www.junit.org/
junitperf/ java performance unit test http://www.clarkware.com/software/JUnitPerf.html
jwebunit/ a Java framework that facilitates creation of acceptance tests for web applications http://jwebunit.sourceforge.net/
jython/ an implementation of the high-level, dynamic, object-oriented language Python in java http://jython.sourceforge.net/
kxml/ kvm java xml parser http://kxml.enhydra.org/
kxml2/ kvm java xml parser http://kxml.enhydra.org/
ldapd-common/ LDAPd will be a pure Java LDAP v3 protocol http://ldapd.sourceforge.net/modules/ldapd-common/
ldapsdk/ Netscape Directory SDK for Java http://www.mozilla.org/directory/javasdk.html
log4j/ Inserting log statements into your code http://jakarta.apache.org/log4j/docs/index.html
logkit/ log api http://avalon.apache.org/
lucene/ high-performance, full-featured text search engine written entirely in Java http://jakarta.apache.org/lucene/docs/index.html
maven/ Java project management and project comprehension tool http://maven.apache.org/
maxq/ a web functional testing tool http://maxq.tigris.org/
mckoi/ Mckoi SQL Database written entirely in Java. http://mckoi.com/database/
merlin/ erlin is an advanced component and service management solution that simplifies and enhances component development http://avalon.apache.org/
com.mysql/ mysql jdbc driver http://www.mysql.com/products/connector-j/index.html
mockcreator/ Java Mock Generator http://mockcreator.sourceforge.net/
mockobjects/ a test-first development process for building object-oriented software http://wiki.truemesh.com/mockobjects
msv/ Multi-Schema XML Validator https://msv.dev.java.net/
mule/ a simple yet robust and highly scalable component broker and services framework http://www.cubis.co.uk/mule/
mx4j/ Open Source implementation for the JMXTM technology http://mx4j.sourceforge.net/
mysql/ mysql jdbc driver http://www.mysql.com/products/connector-j/index.html
nanning/ Aspect Frameworks http://nanning.snipsnap.org/space/Nanning
nekohtml/ html parser http://www.apache.org/~andyc/neko/doc/html/
netbeans/ an ide development tool http://www.netbeans.org/
nsuml/ Novosoft metadata framework and uml library http://nsuml.sourceforge.net/
odmg/ Object Data Management Group http://www.odmg.org/
ognl/ Object-Graph Navigation Language http://www.ognl.org/
ojb/ an Object/Relational mapping tool http://db.apache.org/ojb/
openim/ OpenIM Java Jabber Server http://javajabber.net/en/
openjms/ Open Source implementation of Java Message Service Specification http://sourceforge.net/projects/openjms
opensymphony/ Open Source project dedicated to providing enterprise class J2EE applications and components http://sourceforge.net/projects/opensymphony
oro/ a set of text-processing Java classes that provide Perl5 compatible regular expressions http://jakarta.apache.org/oro/
p6spy/ an open source framework for applications that intercept and optionally modify database statements http://www.p6spy.com/
patterntesting/ A new type of automated testing that ensures that development patterns, best practices, architecture design are being correctly implemented http://sourceforge.net/projects/patterntesting
petridish/ workflow systems. http://petridish.werken.com/
piccolo/ is a small, extremely fast XML parser for Java http://piccolo.sourceforge.net/
plexus/ Decouples the behaviour of service from the point in time at which service implementations are configured into an application or system http://plexus.codehaus.org/index.html
pluto-container/ is the Reference Implementation of the Java Portlet Specfication http://jakarta.apache.org/pluto/
pmd/ a Java source code analyzer. http://sourceforge.net/projects/pmd
poi/ Java API To Access Microsoft Format Files http://jakarta.apache.org/poi/index.html
postgresql/ PostgreSQL JDBC Drivers http://jdbc.postgresql.org/
prevayler/ fastest, simplest and most transparent business object persistence, ACID transaction, fault-tolerance, replication and load-balancing architecture http://www.prevayler.org/wiki.jsp
profiler/ an enterprise level all-in-one Java profiler http://www.ej-technologies.com/products/jprofiler/overview.html
pull-parser/ XML Pull Parser http://www.extreme.indiana.edu/xgws/xsoap/xpp/
qdox/ a high speed, small footprint parser for extracting class/interface/method definitions from source files complete with JavaDoc @tags. http://qdox.codehaus.org/
quartz/ Symbian Quartz SDK for Java http://www.symbian.com/developer/techlib/Qdocs/java/navigationpages/SDK_start.html
redhill/ Similarity Analyser) http://www.redhillconsulting.com.au/products/simian/
regexp/ Java Regular Expression package http://jakarta.apache.org/regexp/
relaxngDatatype/ public space for test cases and other ancillary software related to the construction of the RELAX NG language and its implementations. http://sourceforge.net/projects/relaxng
rhino/ open-source implementation of JavaScript written entirely in Java http://www.mozilla.org/rhino/
saaj/ Attachments API for Java http://java.sun.com/xml/saaj/
sax/ Simple API for XML http://www.saxproject.org/
saxon/ The XSLT and XQuery Processor http://saxon.sourceforge.net/
saxpath/ Java API for XPath parsing http://saxpath.org/
servletapi/ servlet api http://java.sun.com/products/servlet/
skaringa/ a framework for Java and XML language binding http://skaringa.sourceforge.net/
skinlf/ Skin Look And Feel http://www.l2fprod.com/
soap/ WebServices http://ws.apache.org/soap/
sshtools/ a suite of Java SSH applications providing a Java SSH API, SSH Terminal, SSH secured VNC client, SFTP client and SSH Daemon http://sourceforge.net/projects/sshtools/
statcvs/ CVS Repository statistic analysis tool http://statcvs.sourceforge.net/
stratum/ Java Caching System http://jakarta.apache.org/turbine/stratum/JavaCachingSystem.html
struts-menu/ Struts Plugin that allows creation of many different menu systems from an XML file. http://struts-menu.sourceforge.net/
struts/ web development framework http://jakarta.apache.org/struts/index.html
strutstestcase/ an extension of the JUnit TestCase class that allows testing of individual Action objects with or without a running servlet engine http://sourceforge.net/projects/strutstestcase
stxx/ Struts for Transforming XML with XSL http://stxx.sourceforge.net/
suiterunner/ A Tool for Conformance and Unit Testing for Java APIs http://www.artima.com/suiterunner/
swt/ The Standard Widget Toolkit http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html
sysunit/ JUnit framework for distributed unit testing http://sysunit.sourceforge.net/
tablelayout/ An Alternative to GridBagLayout http://java.sun.com/products/jfc/tsc/articles/tablelayout/
taglibs/ an open-source repository for JSP custom tag libraries http://jakarta.apache.org/taglibs/index.html
tambora/ considered an enterprise class papiNet enabler http://tambora.zenplex.org/index.html
tapestry/ a powerful, open-source, all-Java framework for creating leading edge web applications in Java. http://jakarta.apache.org/tapestry/index.html
thaiopensource/ a schema language for XML, based on TREX and RELAX. http://www.thaiopensource.com/
tjdo/ an open source implementation of Sun's JDO specification http://tjdo.sourceforge.net/
tomcat-util/ tomcat util package http://jakarta.apache.org/tomcat
tomcat/ web server http://jakarta.apache.org/tomcat
torque/ a persistence layer http://db.apache.org/torque/
touchstone/ A certifying compiler for Java http://raw.cs.berkeley.edu/touchstone.html
turbine/ servlet based framework http://jakarta.apache.org/turbine/index.html
tyrex/ the missing piece in the J2EE puzzle, a J2EE service provider for both Servlet and EJB container http://tyrex.sourceforge.net/
urbanophile/ Java command line option parser http://www.urbanophile.com/arenn/hacking/download.html
vdoclet/ a code-generation framework http://sourceforge.net/projects/vdoclet
velocity/ a Java-based template engine http://jakarta.apache.org/velocity/
velocity-tools/ collection of Velocity subprojects with a common goal of creating tools and infrastructure for building both web and non-web applications using the Velocity template engine. http://jakarta.apache.org/velocity/tools/index.html
village/ a 100% Pure Java API that sits on top of the JDBC API http://www.working-dogs.com/village/
webmacro/ 100% Java open-source template language http://www.webmacro.org/
webtest/ free open source tool for automated testing of web applications. http://webtest.canoo.com/webtest/manual/WebTestHome.html
webwork/ an Open Source project dedicated to providing enterprise class J2EE applications and components http://sourceforge.net/projects/opensymphony
werken-xpath/ XPath-Rec implementation for DOM4J http://sourceforge.net/projects/werken-xpath/
werkflow/ a Java workflow engine built against the blissed state-machine framework and the drools RETE-based rules engine. http://werkflow.codehaus.org/
werkz/ a lightweight framework for goal-oriented processes http://sourceforge.net/projects/werkz
which/ simple environment checking utility for Apache projects http://xml.apache.org/commons/components/which/index.html
wrapper/ Java Service Wrapper http://wrapper.tanukisoftware.org/doc/english/index.html
wsdl4j/ Web Services Description Language for Java Toolkit http://www-124.ibm.com/developerworks/projects/wsdl4j/
xalan/ an XSLT processor for transforming XML documents into HTML, text, or other XML document types http://xml.apache.org/xalan-j/index.html
xdoclet/ a code generation framework http://www.sourceforge.net/projects/xdoclet
xerces/ the next generation of high performance, fully compliant XML parsers http://xml.apache.org/xerces2-j/index.html
xercesjarv/ JARV driver for Xerces-2 http://www.kohsuke.org/jarv/xerces/
xml-apis/ xml-apis http://lsd.student.utwente.nl/gump/xml-commons/xml-apis.html
xml-security/ aimed at providing implementation of security standards for XML http://xml.apache.org/security/index.html
xmlbeans/ is a tool that allows you to access the full power of XML in a Java friendly way http://xml.apache.org/xmlbeans/
xmldb/ Initiative for XML Databases http://www.xmldb.org/
xmlenc/ fast stream-based XML output library for Java http://xmlenc.sourceforge.net/
xmlpull/ Common API for XML Pull Parsing http://www.xmlpull.org/
xmlrpc-helma/ XML-RPC http://xmlrpc.helma.org/
xmlrpc/ a Java implementation of XML-RPC http://ws.apache.org/xmlrpc/
xmlunit/ JUnit and NUnit testing for XML http://xmlunit.sourceforge.net/
xmtp/ A rapidly transformable and portable , XML complients mail transfer protocol - Based on XML, SMTP, & Java http://www.openhealth.org/xmtp/
xom/ a new XML object model http://www.cafeconleche.org/XOM/
xpp3/ XML Pull Parser http://www.extreme.indiana.edu/xgws/xsoap/xpp/
xsdlib/ Sun XML Datatypes Library http://wwws.sun.com/software/xml/developers/xsdlib/



p包 2006-02-23 17:01 发表评论
]]>
cvs完全手册http://www.tkk7.com/tangbao/articles/32123.htmlp包p包Thu, 23 Feb 2006 08:57:00 GMThttp://www.tkk7.com/tangbao/articles/32123.htmlhttp://www.tkk7.com/tangbao/comments/32123.htmlhttp://www.tkk7.com/tangbao/articles/32123.html#Feedback0http://www.tkk7.com/tangbao/comments/commentRss/32123.htmlhttp://www.tkk7.com/tangbao/services/trackbacks/32123.html

来自QLinux知识宝库
现蝲Q?/FONT>http://www.douzhe.com/linuxtips/1493.html
地址Q无?BR>
最q项目用cvs理Q研I了(jin)一D|_(d)参考了(jin)几个文Qȝ如下


CVS完全手册
==========================================================================
He Wehzhu, kerlion@netease.com, created at 2003-11-5
updated at 2003-11-12
版权声明Q可以Q意{载,转蝲时请务必标明原始出处和作者信?BR>==========================================================================

内容
概述
CVS环境讄
dCVS服务器:(x) 
cvs命o(h)格式
CVS的日怋?BR>其他常用命o(h)
CVS?keyword
CVS分支理
CVS服务器的安装和配|?BR>Watchers
WinCVS的安装和配置
CVSWEB的安?BR>

概述
==================================

CVS是一个ƈ行版本控制系l,它采用C/S模式Q它的复杂度和功能性属于中{,是当今最行的版本控制系l。它有两个基本的特点Q?BR>*保存修改记录Q保存了(jin)所有文件的修改历史Qƈ可以建立分支
*协作与ƈ行:(x)cvs不推荐用lock-modify-unlock的串行的工作模式Q而采用多人可以ƈ行地修改同一个文Ӟ而在提交时merge conflictQ它更适合于大型的工作团体?BR>使用CVS的好处:(x)
*文g集中理Q大安可以方便的看到所有h员的最新文?规范化了(jin)文g的管?BR>*可以查看以前M的一个版本或修改历史
*可以同时l护多个版本和分?BR>

CVS环境讄
==================================

先不要管CVS服务器的配置Q我们先假设已经有一台配|好的服务器Q要讉KCVSQ必需先设|环境变量CVSROOT
CVSROOT=:pserver:user@server#port:/path/to/cvsroot

*pserver是访问方式,口o(h)认证的意思,q是最常用的方式,其他q有gserver,kserver,ext
*user是CVS服务器的用户名,
*server是CVS服务器的名称或者IP地址
*/path/to/cvsroot是你的CVS服务器的CVSROOT目录Q根据你的CVS服务器设|做修改或者询问管理员
你可以把讄攑ֈ你的shell的profile里(.bash_profileQ?profile{)(j)q样׃用每ơ敲一长串命o(h)?BR>
高功能Q现在比较流行是使用ssh来加密口令和数据?BR>CVSROOT=:ext:user@server#port:/path/to/cvsroot
CVS_RSH=ssh
hints:
实际上没有CVSROOT也可以,你可以每ơ用cvs -d :pserver:user@server#port:/path/to/cvsroot来访问,而且它将忽略CVSROOT环境变量Q也怽?x)笑我只有疯子才q么用,不过Qcvs可以把每ơ用的命o(h)参数攑ֈ一个文件中Q所以在~/.cvsrc中加?BR>cvs -d :pserver:user@server#port:/path/to/cvsroot
卛_Q它最大的好处是修改了(jin)立刻生效Q而且它的优先U高于CVSROOT环境变量Q到时候不要傻乎乎地来问我Q我的环境变量真么不起作用了(jin)?BR>

dCVS服务器:(x) 
==================================
$cvs loginQ这时候cvs?x)问你口令,h你在CVS服务器上的口令敲q去
如果没有M错误信息Q恭喜你Q成功了(jin)Q?BR>成功d后将建立一个~/.cvspass文gQ保存你的口令,以后׃用输入口令了(jin)Q?BR>
cvs命o(h)格式
==================================
cvs [global_opts] command [command_opts] [command_args]
Global options 属于左边cvs的,是全局?BR>command_opts 属于左边command的,是局部的
cvs --help-commands查看命o(h)列表
cvs -H command/cvs -help command 查看该命令的选项
hints:如果你每ơ用一些命令都带同L(fng)参数的话Q可以把它们攑ֈ~/.cvsrc文g中去
update -c
diff -c
add -kb
cvs -Q


cvs global-option comand comand-option arguments

CVS的日怋?BR>==================================
CVS使用程
a checkout 当本地没有working copy时?BR>b staus (g)查服务器上是否有新版?BR>c update 如果?则用update同步文g
d 做你自己的修改,q保证正?BR>e update 看是否有Z改了(jin)你的文g
f 如果有冲H,合ƈ冲突
g commit 提交你的修改Q如果因为又有h提交修改而失败,回到e?BR>h 回到b?BR>
1 cvs checkout module_name
-------------------------------------
module_name可以暂时理解为目录名Q它?x)在本地但前目录下徏立module_name目录Q在把服务器上说有module_name目录下的文gcopy到本地module_name目录下?BR>注意Q第一ơcheckout后,׃是通过cvs checkout来同步文件了(jin)Q而是要进入该目录下进行具体文件的版本同步Q添加,修改Q删除)(j)操作?BR>
2 cvs update filename
-------------------------------------
文件同步到最新的版本Q不指定文g名,cvs同步所有子目录下的文g?BR>最好每天开始工作前或将自己的工作导入到CVS库里前都要做一ơ,q养?先同?后修?的习(fn)惯,和Virvual SourceSafe不同QCVS里没有文仉定的概念Q所有的冲突是在commit之前解决Q如果你修改q程中,有其他h修改qcommitC(jin)CVS 库中QCVS?x)通知你文件冲H?BR><<<<<<< filename
你文件上的内?BR>=======
服务器上文g的内?BR>>>>>>>> latest revision number in the repository

׃认冲突内容的取舍。也可以多h协商解决Q修改完成后L文g中的冲突标志

conflict:多h修改同一文g的同一区域q就叫冲H,它必ȝ人来解决QCVS不处理冲H,它只是告诉你存才冲突


3 cvs commit -m "write some comments here" file_name
------------------------------------
认修改写入到CVS库里?BR>注意QCVS的很多动作都是通过cvs commitq行最后确认ƈ修改的,最好每ơ只修改一个文件。在认的前Q还需要用户填写修Ҏ(gu)释,以帮助其他开发h员了(jin)解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话Qcvs?x)自动调用系l缺省的文字~辑?一般是vi)要求你写入注释?BR>注释的质量很重要Q所以不仅必要写,而且必须写一些比较有意义的内容:(x)以方便其他开发h员能够很好的理解
不好的注释,很难让其他的开发h员快速的理解Q比如:(x) -m "bug fixed" 甚至 -m ""
好的注释Q甚臛_以用中文: -m "在用h册过E中加入?jin)Email地址校验"

修改某个版本注释Q每ơ只认一个文件到CVS库里是一个很好的?fn)惯Q但隑օ有时候忘?jin)指定文件名Q把多个文g以同h释commit到CVS库里?jin),以下命o(h)可以允许你修Ҏ(gu)个文件某个版本的注释Q?BR>cvs admin -m 1.3:"write some comments here" file_name

4 查看状?BR>------------------------------------
cvs status filename
状态报告,cMq样Q 
File: foo.c             Status: Up-to-date 
   Working revision:    1.1.1.1 'Some Date' 
   Repository revision: 1.2     /home/cvsroot/cvstest/foo.c,v 
   Sticky Tag:          (none) 
   Sticky Date:         (none) 
   Sticky Options:      (none) 

q里最重要的就是Status栏,q里d可能有四U状态:(x) 
Up-to-dateQ?表明你要到的文g是最新的Q 
Locally ModifiedQ?表明你曾l修改过该文Ӟ但还没有提交Q你的版本比仓库里的斎ͼ 
Needing PatchQ?表明有个哥们已经修改q该文gq且已经提交?jin)!你的版本比仓库里的旧Q 
Needs MergeQ?表明你曾l修改该文gQ但是偏偏有个不识相的也修改?jin)这个文Ӟ而且q提交了(jin)!

5 查看修改历史和注释信?BR>------------------------------------
cvs log file_name


其他常用命o(h)
==================================
1 d文g和目?BR>------------------------------------
cvs add new_file_name
cvs add -kb new_file_name
cvs add dir_name

CVS一般只处理文本文gQ它?x)扩展keyword(?q{换行l束W?BR>对于囄QW(xu)ord文档{非U文本的目Q需要用cvs add -kb选项Q否则有可能出现文g被破坏的情况
然后认修改q注?BR>cvs ci -m "write some comments here" new_file_name

2 删除文g
------------------------------------
某个源文g物理删除?BR>cvs remove file_name
然后认修改q注?BR>cvs ci -m "write some comments here" file_name

注意Q很多cvs命o(h)都有~写形式Qcommit=>ci; update=>up; checkout=>co; remove=>rm;

3.修改文g?BR>------------------------------------
Ud文gQ文仉命名
cvs里没有cvs move或cvs renameQ因两个操作是先cvs remove old_file_nameQ然后cvs add new_file_name实现的?BR>
4 目录l构同步
------------------------------------
如果在你checkout后,有hd?jin)新的文件或目录Q你需要把他们取出?BR>cvs update -d

5 攑ּ本地的修?undo)
------------------------------------
如果修改来了(jin)本地文gQ不x交,想重新取新文?BR>cvs update -C filename
它会(x)先把你的本地文g改名

Q徏议大家把checkout的文件缺省ؓ(f)readonly,?cvs -r"d到~/.cvsrc文g?BR>q样Q你每次修改一个文件前Q先cvs edit filename,提交后文件又变成readonly,
如果你想攑ּ本地的修改,则cvs unedit filename,它会(x)undo,而且文g又变成readonly


6 恢复到旧版本
------------------------------------
cvs update -j1.20 -j1.15 filenames
1.20时当前版本号Q注意顺序不要反?jin),C要commit,Z(jin)保证是但前版本号Q最好先lock
注意Qcvs update -r1.15 file.nameQ这里的-r不是版本L(fng)意思,是给文g加了(jin)一个叫1.15的sticky tag
如果不小?j)已l加成STICK TAG的话Q用cvs update -A 解决

7 文g比较
------------------------------------
cvs diff -c filename
cvs diff -c -r1.8 -r 1.5 filename

8 锁定与解锁文?BR>------------------------------------
Z证串行的修改文gQ或修改?BR>cvs admin -l files
cvs admin -u files


==========================================================================
如果你只是一般性的使用cvsQ到此ؓ(f)止就_?jin)。一个系l?0%的功能往往能够满80%的需求,CVS也不例外Q以下是CVS最常用的功能,可能用到的还不到它全部命令选项?0%Q更多的功能请在实际应用q程中体?x),学?fn)q程中应该是用多,学多,用到?jin)再学也不迟?BR>==========================================================================

CVS?keyword
==================================
CVS~省?x)对文gq行keyword(?替换,在文件中加入q些关键字是个良好的工作?fn)?BR>$Id$ 关键字是用文件名、版本、时间、作??qing)代码性质替换Q如果?l选项取出Q在Exp?BR>面会(x)加上d用户的名U。除?Id$关键字,RCSq支持下面常用的关键字:(x)
$Log$ : 你所提供的修Ҏ(gu)志信息?BR>$Author$ Q存入该版本的作者?BR>$Locker$ : 该版本的加锁?BR>$State$ : 该版本的状?ExpQ试验版Q? StabeQ稳定版Q? RelQ发行版Q?~省是Exp
$Date$ : 该版本存入的旉Q用UTC旉格式?BR>$Revision$ : 该版本的版本?BR>$RCSfile$ : RCS文g?BR>$Source$ : RCS全\径名
$Name$ : 取回该版本的W号?BR>$Header$ : 相当? Source $$ Revision$$Date$$Author $$State$$Locker$的组?BR>

Sticky Tag
==================================
tag的作用是对多个连l变化的文g做一个快照来表示某一时刻的所有不停内部版本的文gQ一般是目C定阶D,可以l所有文件统一指定一个阶D里E碑版本?需要的时候可以一ơ导?gu)些版本不一的文?标记的另外一个非帔R要的作用是生成分支和合ƈ分支.
1 cvs tag release_name module_name
------------------------------------
release_name要简z而含义丰富,由字母开_(d)加字母,数字Q下划线和连字号l成Q特别是不能含??BR>2 cvs checkout -r release_name module_name
------------------------------------
取出tag_name标志的文?BR>3 cvs update -A
------------------------------------
tag标识的文件是历史文gQ不能修改,q样可在本地去除q个限制Q让它和当前版本合ƈ




CVS分支理
=============================
CVS可以历史划分成多个独立Qƈ行和互不影响的分支,q去修改历史
1 标定里程?BR>------------------------------------
cvs tag release_1_0 prj_dir_name

2 开始一个新的里E碑Q?BR>------------------------------------
cvs commit -r 2
标记所有文件开始进?.x的开?BR>注意QCVS里的revsion和Y件包的发布版本可以没有直接的关系。但所有文件用和发布版本一致的版本h较有助于l护?BR>
3 建立分支
------------------------------------
在开发项目的2.x版本的时候发?.x有问题,?.x又不敢用Q则从先前标记的里程:(x)release_1_0导出一个分支release_1_0_b2
cvs rtag -b -r release_1_0 release_1_0_bugfixes prj_dir_name
-r修饰的是release_1_0,-b 修饰的是release_1_0_bugfixesQcvs的版本号变?位,以后每分一ơ支Q版本号增加2?BR>
4 分支q行开?BR>------------------------------------
一些h先在另外一个目录下导出release_1_0_bugfixesq个分支Q解?.0中的紧急问题,
cvs checkout -r release_1_0_bugfixes
分支是可以修改的Qƈ自动提交到分支上?BR>而其他h员仍旧在目的主q分?.x上开?BR>
5 tag分支
------------------------------------
在release_1_0_bugfixes上修正错误后Q标C?.0的错误修正版本号
cvs tag release_1_0_bugfixes_p1

6 合ƈ分支
------------------------------------
如果2.0认ؓ(f)q些错误修改?.0里也需要,也可以在2.0的开发目录下合ƈrelease_1_0_patch_1中的修改到当前代码中Q?BR>cvs update -j release_1_0_bugfixes

7 再次合ƈ分支
------------------------------------
如果又发?.x新的bug,我在分支已经修改?jin),q标定了(jin)release_1_0_patch_2,我们同样希望把它合ƈCq上?BR>cvs update -j release_1_0_bugfixes_p1 -j release_1_0_bugfixes
它的意思是把release_1_0_bugfixes_p1(tag)到release_1_0_bugfixes(分支)变化?jin)的部分合ƈ到当前文?d)
否则?步的Ҏ(gu)Q则以前合ƈ的内容会(x)重新合ƈ
注意Q此时我们用第5步的l果
教训Q尽早频J的tag,但同时不能导致tag泛滥Qtag在不同的分支里可以同?BR>
8 锁定分支
------------------------------------
cvs admin -l r_0_2 锁定r_0_2分支
cvs admin -l 锁定d?BR>
9 讄~省分支
------------------------------------
cvs admin -b r_0_2 讑֮r_0_2为缺省分?BR>cvs admin -b 讑֮d?BR>
10 删除历史记录
如果历史文gq多Q或定有几个阶D늚E_版本Q我们可以删除一些历史文Ӟ以保证cvs的性能
cvs admin -o rev1:rev2 filename 删除rev1到rev2的版本,含这两个版本
cvs admin -o rev1::rev2 filename 删除rev1到rev2的版本,不含q两个版?BR>如果省略rev1,表示删除本分支rev2之前的所有版?BR>如果省略rev2,表示删除本分支rev1之后的所有版?BR>cvs admin -o rev filename 删除revq个版本的文?BR>注意Q有tag的版本不能被删除Q所以tag很重要,而且只能删单个文?BR>

CVS服务器的安装和配|?BR>=============================
1 下蝲源码
------------------------------------
可从很多地方下蝲cvs,也可从官方ftp://ftp.gnu.org/gnu/cvs/下蝲

2 安装Q同很多源码安装一?BR>------------------------------------
gunzip cvs-1.10.6.tar.gz
tar xvf cvs-1.10.6.tar
cd cvs-1.10.6
./configure
make
make install

3 包的安装Q如果找到具体操作系l的安装包,则见此操作系l的使用说明Q比如linux?BR>------------------------------------
rpm -ivh cvs-1.10.8-3.i386.rpm卛_

4 建立Repository
------------------------------------
groupadd cvs(要访问cvs的用户加入此l?
useradd cvsroot
mkdir /home/cvsroot
cvs -d /home/cvsroot init
chown -R cvsroot.cvs /home/cvsroot
chmod -R ug+rwx /homecvsroot

5 配置/etc/services文g
------------------------------------
dcvspserver,如果有就不要加了(jin)
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations

6 配置inetd
------------------------------------
~辑/etc/inetd.confQ加?BR>cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
如果使用tcpwrappers
cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs --allow-root=/usr/local/newrepos pserver
如果使用xinetdQ编?etc/xinetd.d/cvspserver
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = root
env = HOME=
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
}
pserver表示是口令认?如果要用ssh方式则应该是server
--allow-root是Repository的目录,可以有多个此选项来徏立多个Repository

7 验证配置成功
cvs login看时候能成功dQ有几个可能p|的地?BR>用户是否属于cvsl和目录权限
inetd是否正常配置和启动,--allow-root是否写对
8 导入目
把你的所有项目文件放入prj_dir
cd prj_dir
 cvs import -m "this is a cvstest project" prj_dir v_0_0_1 start
v_0_0_1是这个分支的L讎ͼ没啥用(或曰不常用)(j)
 start 是每?import 标识文g的输入层ơ的标记Q没啥用?BR>

Watchers
=============================
cvs提供?jin)watch的功能,来帮助大家了(jin)解谁在干什么,谁在Ҏ(gu)件做什么操作,它发email通知,以协调大家的工作?BR>1 开启watch功能
在CVSROOT/notify文g中加入下面行
ALL mail %s -s "CVS notification"
2 讑֮外部email地址
~省是把通知信息发给本机的email,要发l别的地址Q在CVSROOT/users加入如下内容
hwz:kerlion@netease.com
3 watch文g的修?BR>cvs watch add filename
cvs watch remove filename
4 watch文g的修?BR>watch功能是个大家协调的功能,大家必须按一个统一的工作流E来?如果不cvs editQcvs没有办法通知修改情况
cvs edit filename
修改文g
cvs unedit filename
5 提醒大家使用watch功能
cvs没有强制使用watch的功能,只有q个功能在用h交完后自动把文g变ؓ(f)只读的,再用cvs edit filename可以修改它?BR>cvs watch on
6 查看那h人再watch
cvs watchers


WinCVS的安装和配置
=============================
1、WinCVS介:(x)
WinCVS是CVS的一个客L(fng)软gQ它q行在Windows上,用来在Windows上登录CVS服务器,然后q行一些CVS相关的操作与理。由于当前很多的企业内部都采用Linux/Unix做服务器Q而用Windows做客L(fng)Q所以,W(xu)inCVS与CVS服务器配合用将l成最强有力的版本控制与管理的pȝ之一?BR>2、WinCVS的下载与安装Q?BR>最新的WinCVS可以从http://sourceforge.net/project/showfiles.php?group_id=10072地址下蝲刎ͼ也可以在http://sourceforge.net/project 上下载到最新的或其它版本的WinCVS?BR>下蝲到相应的版本后根据向D行安装,已经要用CVS的用P安装q个WinCVS应该没什么问题吧Q?BR>3、配|WinCVSQ?BR>a、Admin->Preferences?general
CVSROOT 按cvsroot格式填写
AuthenticationQ用来配|cvs服务器的认证方式一般只要选择默认的pserver方式可?BR>要注意的是必Mcvs服务器配|时所指定的认证方式一?BR>如果要用ssh server,认在windows中安装了(jin)openssl,openssh
a、Admin->Preferences?Globals
此项的配|主要是要注意这几选项Q?BR>Checkout read-onlyQ默认是选中?不要修改Q只是修Ҏ(gu)件前需要先edit selection,提交后又自动变ؓ(f)只读
q样有两个好处:(x)
一个是可以通过unedit selection来undo你做的修?BR>二是可以W合watch功能的用规?BR>Prune empty directories: 不要选上Q否则,?x)自动删除空目录Q?BR>4、登录服务器Q?BR>选择Admin->loginQ将出现如下对话框要求用戯入登录口?BR>wincvs中命令的exit code 0表示正确执行,否则是失败,一般成功显CZؓ(f)
*****CVS exited normally with code 0*****
5、winCVS的用都有菜单,大家熟?zhn)cvs的用的话,用v来是很容易的,我就不多说了(jin)


CVSWEB的安?BR>=============================
CVSWEB是CVS的WEB界面Q可以大大提高程序员定位修改的效?
使用的样例可以看Qhttp://www.freebsd.org/cgi/cvsweb.cgi

CVSWEB的下载:(x)CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本,q个是个人感觉觉得安装设|比较方便的Q?BR>http://www.spaghetti-code.de/software/linux/cvsweb/

1 下蝲解包Q?BR>tar zxf cvsweb.tgz

2 把配|文件cvsweb.conf复制到apache的配|目录下
cp cvsweb.conf /path/to/apache/conf
转到/path/to/apache/conf下ƈ修改cvsweb.confQ?BR>修改CVSROOT路径讄Q?BR>%CVSROOT = (
'Development' => '/path/to/cvsroot/dev', #<==修改指向本地的CVSROOT
'test' => '/path/to/cvsroot/test', #<==修改指向本地的CVSROOT
);
如果有多个cvsroot,q定~省的cvsroot
$cvstreedefault = 'test';

3 其它个性化讄
cvsweb.confq有许多其它个性化讄Q常见的有这些变量:(x)
$logo 图标讄
$defaulttitle 标题设施
$address 理员email地址讄
$long_intro 介绍文字
$short_instruction 说明文字

4 把文件cvsweb.cgi复制到apache的cgi目录
cp cvsweb.cgi /path/to/apache/cgi-bin
转到/path/to/apache/cgi-bin修改cvsweb.cgi
修改cvsweb.cgi让CGI扑ֈ配置文gQ?BR>$config = $ENV{'CVSWEB_CONFIG'} || '/path/to/apache/conf/cvsweb.conf';

5 中文支持
让cvsweb正确昄中文Q找到sub html_header($)函数Q?BR>然后?lt;html>?lt;title>之间插入一行,修改如下
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>$title</title>
6 复制所有的gif,png文g到apache的icons目录
7 增加讉K控制
CVSWEB可不能随便开攄所有用P因此需要用WEB用户认证Q?BR>先生?passwd:
/path/to/apache/bin/htpasswd -c cvsweb.passwd user

修改httpd.conf: 增加
<Directory "/path/to/apache/cgi-bin/cvsweb/">
AuthName "CVS Authorization"
AuthType Basic
AuthUserFile /path/to/cvsweb.passwd
require valid-user
</Directory>


==========================================================================
CVS支持的的Ҏ(gu)变量:

      $Id$

      $Header$

      $Author$

      $Date$

      $Revision$
提交之后,cvs?x)自动改变这些变量的取?
==========================================================================


==========================================================================
参考文档:(x)
CVS的常用命令速查手册QR东,chedong@bigfoot.com
CVS服务器与WinCVS的配|与使用Q吴炎溪QYanxi-Wu@21cn.com
CVS速成班,作者不?BR>cvs book,Karl Fogel,kfogel@red-bean.com
==========================================================================


全文l束

p包 2006-02-23 16:57 发表评论
]]>
J2EE 全面?/title><link>http://www.tkk7.com/tangbao/articles/30773.html</link><dc:creator>p包</dc:creator><author>p包</author><pubDate>Wed, 15 Feb 2006 03:27:00 GMT</pubDate><guid>http://www.tkk7.com/tangbao/articles/30773.html</guid><wfw:comment>http://www.tkk7.com/tangbao/comments/30773.html</wfw:comment><comments>http://www.tkk7.com/tangbao/articles/30773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tangbao/comments/commentRss/30773.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tangbao/services/trackbacks/30773.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR vAlign=top> <TD><span id="pibjagr" class=atitle>J2EE 全面?/SPAN></TD> <TD width=8></TD> <TD> </TD> <TD width=6></TD></TR><!-- Black line separator --> <TR vAlign=top> <TD bgColor=#000000 colSpan=5></TD></TR> <TR vAlign=top> <TD bgColor=#ffffff colSpan=5></TD></TR></TBODY></TABLE><!-- END HEADER AREA --><!-- START BODY AREA --> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR vAlign=top> <TD width=10></TD> <TD width="100%"> <P><A >刘湛</A> (<A href="mailto:jeru@163.net">jeru@163.net</A>)<BR><!-- <a href="#author2">Author name</a> (<a href="mailto:userid@us.ibm.com">email address</a>)<br />-->武汉大学信息与计科学系学士<BR>2001 q?7 ?/P> <BLOCKQUOTE>本文从五个方面对J2EEq行?jin)比较全面的介绍。从J2EE的概念说P到它的优势,到J2EE典型的四层模型,和它的框架结构,最后是J2EE十三U核?j)技术的一个简介。本文分门别cȝ对J2EE中的服务Q组Ӟ层次Q容器,API都做?jin)比较详l的介绍Q相信看完此文,读者会(x)对J2EE有一个更清晰的认识?/BLOCKQUOTE> <P><A name=1><span id="qagywzm" class=atitle2>一. J2EE的概?/SPAN></A> <BR>目前QJava 2q_?个版本,它们是适用于小型设备和卡的Java 2q_Micro版(Java 2 Platform Micro EditionQJ2MEQ、适用于桌面系l的Java 2q_标准版(Java 2 Platform Standard EditionQJ2SEQ、适用于创建服务器应用E序和服务的Java 2q_企业版(Java 2 Platform Enterprise EditionQJ2EEQ?/P> <P>J2EE是一U利用Java 2q_来简化企业解x案的开发、部|和理相关的复杂问题的体系l构。J2EE技术的基础是核心(j)Javaq_或Java 2q_的标准版QJ2EE不仅巩固?jin)标准版中的许多优点Q例?~写一ơ、随处运?的特性、方便存取数据库的JDBC API、CORBA技术以?qing)能够在Internet应用中保护数据的安全模式{等Q同时还提供?jin)?EJBQEnterprise JavaBeansQ、Java Servlets API、JSPQJava Server PagesQ以?qing)XML技术的全面支持。其最l目的就是成Z个能够企业开发者大q羃短投攑ָ(jng)场时间的体系l构?/P> <P>J2EE体系l构提供中间层集成框架用来满x需太多费用而又需要高可用性、高可靠性以?qing)可扩展性的应用的需求。通过提供l一的开发^収ͼJ2EE降低?jin)开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持Q完全支持Enterprise JavaBeansQ有良好的向导支持打包和部v应用Q添加目录支持,增强?jin)安全机Ӟ提高了(jin)性能?/P> <P><A name=2><span id="alditpa" class=atitle2>? J2EE的优?/SPAN></A> <BR>J2EE为搭建具有可伸羃性、灵zL、易l护性的商务pȝ提供?jin)良好的机? <OL class=n01> <LI>保留现存的IT资: ׃企业必须适应新的商业需求,利用已有的企业信息系l方面的投资Q而不是重新制定全盘方案就变得很重要。这P一个以渐进的(而不是激q的Q全盘否定的Q方式徏立在已有pȝ之上的服务器端^台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公怋用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及(qing)Netscape Application Server。这之所以成为可能是因ؓ(f)J2EE拥有q泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一个供应商都对现有的客h供了(jin)不用废弃已有投资Q进入可UL的J2EE领域的升U途径。由于基于J2EEq_的品几乎能够在M操作pȝ和硬仉|上q行Q现有的操作pȝ和硬件也能被保留使用? <LI>高效的开? J2EE允许公司把一些通用的、很J琐的服务端d交给中间件供应商d成。这样开发h员可以集中精力在如何创徏商业逻辑上,相应地羃短了(jin)开发时间。高U中间g供应商提供以下这些复杂的中间件服? <UL class=n01> <LI>状态管理服?-- 让开发h员写更少的代码,不用兛_(j)如何理状态,q样能够更快地完成程序开发? <LI>持箋性服?-- 让开发h员不用对数据讉K逻辑q行~码p~写应用E序Q能生成更轻巧,与数据库无关的应用程序,q种应用E序更易于开发与l护? <LI>分布式共享数据对象CACHE服务 -- 让开发h员编刉性能的系l,极大提高整体部v的׾~性?/LI></UL> <LI>支持异构环境: J2EE能够开发部|在异构环境中的可移植程序。基于J2EE的应用程序不依赖M特定操作pȝ、中间g、硬件。因此设计合理的ZJ2EE的程序只需开发一ơ就可部|到各种q_。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客戯购与J2EE兼容的第三方的现成的lgQ把他们部v到异构环境中Q节省了(jin)p己制订整个方案所需的费用? <LI>可׾~? 企业必须要选择一U服务器端^収ͼq种q_应能提供极佳的可伸羃性去满那些在他们系l上q行商业q作的大Ҏ(gu)客户。基于J2EEq_的应用程序可被部|到各种操作pȝ上。例如可被部|到高端UNIX与大型机pȝQ这U系l单机可支持64?56个处理器。(q是NT服务器所望尘莫及(qing)的)(j)J2EE领域的供应商提供?jin)更为广泛的负蝲q{略。能消除pȝ中的瓉Q允许多台服务器集成部v。这U部|可达数千个处理器,实现可高度׾~的pȝQ满x来商业应用的需要? <LI>E_的可用? 一个服务器端^台必能全天候运转以满公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的Q即使在夜间按计划停Z可能造成严重损失。若是意外停机,那会(x)有灾难性后果。J2EE部v到可靠的操作环境中,他们支持长期的可用性。一些J2EE部v在WINDOWS环境中,客户也可选择健壮性能更好的操作系l如Sun Solaris、IBM OS/390。最健壮的操作系l可辑ֈ99.999%的可用性或每年只需5分钟停机旉。这是实时性很强商业系l理想的选择?/LI></OL> <P></P> <P><A name=3><span id="ukykstj" class=atitle2>? J2EE 的四层模?/SPAN></A> <BR>J2EE使用多层的分布式应用模型Q应用逻辑按功能划分ؓ(f)lgQ各个应用组件根据他们所在的层分布在不同的机器上。事实上Qsun设计J2EE的初h是ؓ(f)?jin)解决两层模?client/server)的弊端,在传l模式中Q客L(fng)担当?jin)过多的角色而显得臃肿,在这U模式中Q第一ơ部|的时候比较容易,但难于升U或改进Q可伸展性也不理惻I而且l常Z某种专有的协议――通常是某U数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业应用模型两层化模型中的不同层面切分成许多层。一个多层化应用能够Z同的每种服务提供一个独立的层,以下?J2EE 典型的四层结? <UL class=n01> <LI>q行在客L(fng)机器上的客户层组? <LI>q行在J2EE服务器上的Web层组? <LI>q行在J2EE服务器上的业务逻辑层组? <LI>q行在EIS服务器上的企业信息系l?Enterprise information system)层Y?/LI></UL> <P></P> <P><B>J2EE应用E序lg</B><BR>J2EE应用E序是由lg构成?J2EElg是具有独立功能的软g单元Q它们通过相关的类和文件组装成J2EE应用E序Qƈ与其他组件交互。J2EE说明书中定义?jin)以下的J2EElg: <UL class=n01> <LI>应用客户端程序和applets是客户层lg. <LI>Java Servlet和JavaServer Pages(JSP)是web层组? <LI>Enterprise JavaBeans(EJB)是业务层lg.</LI></UL> <P></P> <P><B>客户层组?/B><BR>J2EE应用E序可以是基于web方式?也可以是Z传统方式?</P> <P><B>web 层组?/B>J2EE web层组件可以是JSP 面或Servlets.按照J2EE规范Q静(rn)态的HTML面和Applets不算是web层组件?/P> <P>正如下图所C的客户层那Pweb层可能包含某?JavaBean 对象来处理用戯入,q把输入发送给q行在业务层上的enterprise bean 来进行处理?<BR></P> <P><B>业务层组?/B><BR>业务层代码的逻辑用来满银行Q零售,金融{特D商务领域的需?p行在业务层上的enterprise bean q行处理. 下图表明?jin)一个enterprise bean 是如何从客户端程序接收数据,q行处理(如果必要的话), q发送到EIS 层储存的Q这个过E也可以逆向q行?/P> <P>有三U企业的bean: ?x)?session) beans, 实体(entity) beans, ?消息驱动(message-driven) beans. ?x)话bean 表示与客L(fng)E序的(f)时交? 当客L(fng)E序执行完后, ?x)话bean 和相x据就?x)消? 相反, 实体bean 表示数据库的表中一行永久的记录. 当客L(fng)E序中止或服务器关闭? ׃(x)有潜在的服务保证实体bean 的数据得以保?消息驱动 bean l合?jin)?x)话bean ?JMS的消息监听器的特? 允许一个业务层lg异步接收JMS 消息. </P> <P></P> <P><B>企业信息pȝ?/B><BR>企业信息pȝ层处理企业信息系lY件包括企业基pȝ例如企业资源计划 (ERP), 大型Z务处? 数据库系l?和其它的遗留信息pȝ. 例如QJ2EE 应用lg可能Z(jin)数据库连接需要访问企业信息系l?/P> <P><A name=4><span id="kahppfv" class=atitle2>? J2EE 的结?/SPAN></A> <BR>q种ZlgQ具有^台无x的J2EE l构使得J2EE E序的编写十分简单,因ؓ(f)业务逻辑被封装成可复用的lgQƈ且J2EE 服务器以容器的Ş式ؓ(f)所有的lgcd提供后台服务. 因ؓ(f)你不用自己开发这U服? 所以你可以集中_֊解决手头的业务问? </P> <P><B>容器和服?/B> <BR>容器讄定制?jin)J2EE服务器所提供得内在支持,包括安全Q事务管理,JNDI(Java Naming and Directory Interface)d,q程q接{服务,以下列出最重要的几U服务:(x) <UL class=n01> <LI>J2EE安全(Security)模型可以让你配置 web lg或enterprise bean ,q样只有被授权的用户才能讉Kpȝ资源. 每一客户属于一个特别的角色Q而每个角色只允许Ȁzȝ定的Ҏ(gu)。你应在enterprise bean的布|描qC声明角色和可被激zȝҎ(gu)。由于这U声明性的Ҏ(gu)Q你不必~写加强安全性的规则? <LI>J2EE 事务理QTransaction ManagementQ模型让你指定组成一个事务中所有方法间的关p,q样一个事务中的所有方法被当成一个单一的单? 当客L(fng)ȀzM个enterprise bean中的Ҏ(gu)Q容器介入一理事务。因有容器管理事务,在enterprise bean中不必对事务的边界进行编码。要求控制分布式事务的代码会(x)非常复杂。你只需在布|描q文件中声明enterprise bean的事务属性,而不用编写ƈ调试复杂的代码。容器将L文gqؓ(f)你处理此enterprise bean的事务? <LI>JNDI d(JNDI Lookup)服务向企业内的多重名字和目录服务提供?jin)一个统一的接?q样应用E序lg可以讉K名字和目录服? <LI>J2EEq程q接QRemote Client ConnectivityQ模型管理客L(fng)和enterprise bean间的低层交互. 当一个enterprise bean创徏? 一个客L(fng)可以调用它的Ҏ(gu)p它和客户端位于同一虚拟Z一? <LI>生存周期理QLife Cycle ManagementQ模型管理enterprise bean的创建和U除,一个enterprise bean在其生存周期中将?x)历l几U状态。容器创建enterprise beanQƈ在可用实例池与活动状态中Ud他,而最l将其从容器中移除。即使可以调用enterprise bean的create?qing)removeҎ(gu)Q容器也会(x)在后台执行这些Q务? <LI>数据库连接池QDatabase Connection PoolingQ模型是一个有价值的资源。获取数据库q接是一耗时的工作,而且q接数非常有限。容器通过理q接池来~和q些问题。enterprise bean可从池中q速获取连接。在bean释放q接之可为其他bean使用?/LI></UL> <P></P> <P><B>容器cd</B><BR>J2EE应用lg可以安装部vC下几U容器中? <UL class=n01> <LI>EJB 容器理所有J2EE 应用E序中企业bean 的执? enterprise bean 和它们的容器q行在J2EE 服务器上. <LI>Web 容器理所有J2EE 应用E序中JSP面和Servletlg的执? Web lg和它们的容器q行在J2EE 服务器上. <LI>应用E序客户端容器管理所有J2EE应用E序中应用程序客L(fng)lg的执? 应用E序客户端和它们的容器运行在J2EE 服务器上. <LI>Applet 容器是运行在客户端机器上的web览器和 Java 插g的结?</LI></UL> <P></P> <P><A name=5><span id="zyxughx" class=atitle2>? J2EE的核?j)API与组?/SPAN></A> <BR>J2EEq_׃整套服务QServicesQ、应用程序接口(APIsQ和协议构成Q它对开发基于Web的多层应用提供了(jin)功能支持Q下面对J2EE中的13U技术规范进行简单的描述(限于幅Q这里只能进行简单的描述): <OL class=n01> <LI>JDBC(Java Database Connectivity): <BR>JDBC API问不同的数据库提供了(jin)一U统一的途径Q象ODBC一PJDBC对开发者屏蔽了(jin)一些细节问题,另外QJDCBҎ(gu)据库的访问也hq_无关性? <LI>JNDI(Java Name and Directory Interface): <BR>JNDI API被用于执行名字和目录服务。它提供?jin)一致的模型来存取和操作企业U的资源如DNS和LDAPQ本地文件系l,或应用服务器中的对象? <LI>EJB(Enterprise JavaBean): <BR>J2EE技术之所以赢得某体广泛重视的原因之一是EJB。它们提供了(jin)一个框架来开发和实施分布式商务逻辑Q由此很显著地简化了(jin)h可׾~性和高度复杂的企业应用的开发。EJB规范定义?jin)EJBlg在何时如何与它们的容器进行交互作用。容器负责提供公用的服务Q例如目录服务、事务管理、安全性、资源缓冲池以及(qing)定w性。但q里值得注意的是QEJBq不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一U和EJBq的方式来辑ֈ同样的目的? <LI>RMI(Remote Method Invoke): <BR>正如其名字所表示的那PRMI协议调用q程对象上方法。它使用?jin)序列化方式在客L(fng)和服务器端传递数据。RMI是一U被EJB使用的更底层的协议? <LI>Java IDL/CORBA: <BR>在Java IDL的支持下Q开发h员可以将Java和CORBA集成在一赗?他们可以创徏Java对象q之可在CORBA ORB中展开, 或者他们还可以创徏Javacdƈ作ؓ(f)和其它ORB一起展开的CORBA对象的客戗后一U方法提供了(jin)另外一U途径Q通过它Java可以被用于将你的新的应用和旧的系l相集成? <LI>JSP(Java Server Pages): <BR>JSP面由HTML代码和嵌入其中的Java代码所l成。服务器在页面被客户端所h以后对这些Java代码q行处理Q然后将生成的HTML面q回l客L(fng)的浏览器? <LI>Java Servlet: <BR>Servlet是一U小型的JavaE序Q它扩展?jin)Web服务器的功能。作ZU服务器端的应用Q当被请求时开始执行,q和CGI Perl脚本很相伹{Servlet提供的功能大多与JSPcMQ不q实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码Q而servlets全部由Java写成q且生成HTML? <LI>XML(Extensible Markup Language): <BR>XML是一U可以用来定义其它标记语a的语a。它被用来在不同的商务过E中׃n数据。XML的发展和Java是相互独立的Q但是,它和Javah的相同目标正是^台独立性。通过Java和XML的组合,(zhn)可以得C个完的hq_独立性的解决Ҏ(gu)? <LI>JMS(Java Message Service): <BR>MS是用于和面向消息的中间g怺通信的应用程序接?API)。它既支持点对点的域Q有支持发布/订阅(publish/subscribe)cd的域Qƈ且提供对下列cd的支持:(x)l认可的消息传?事务型消息的传递,一致性消息和h持久性的订阅者支持。JMSq提供了(jin)另一U方式来Ҏ(gu)的应用与旧的后台pȝ盔R成? <LI>JTA(Java Transaction Architecture): <BR>JTA定义?jin)一U标准的APIQ应用系l由此可以访问各U事务监控? <LI>JTS(Java Transaction Service): <BR>JTS是CORBA OTS事务监控的基本的实现。JTS规定?jin)事务管理器的实现方式。该事务理器是在高层支持Java Transaction API (JTA)规范Qƈ且在较底层实现OMG OTS specification的Java映像。JTS事务理器ؓ(f)应用服务器、资源管理器、独立的应用以及(qing)通信资源理器提供了(jin)事务服务? <LI>JavaMail: <BR>JavaMail是用于存取邮件服务器的APIQ它提供?jin)一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器? <LI>JTA(JavaBeans Activation Framework): <BR>JavaMail利用JAF来处理MIME~码的邮仉件。MIME的字节流可以被{换成Java对象Q或者{换自Java对象。大多数应用都可以不需要直接用JAF?/LI></OL> <P></P> <P><A name=resources><span id="btbyrhf" class=atitle2>参考资料:(x)</SPAN></A> <UL> <LI>《Develop n-tier application using J2EE? Steven Gould <LI>《The Business Benefits of EJB and J2EE Technologies over COM+ and Windows DNA? <LI>《The J2EE Tutorial》chapter overview - Monica Pawlan <LI>本文所用图片由《The J2EE Tutorial》中的英文图片修改而成.</LI></UL> <P></P><!-- Make author heading singular or plural as needed --> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><A name=author1><span id="ozdhejk" class=atitle2>关于作?/SPAN></A> <BR>刘湛,武汉大学信息与计科学系学士Q熟(zhn)?Java 语言?J2EE 思想Q国内多?Java 论坛版主Q现致力?J2EE q_上的 eCRM 套g开发。你可以通过<A href="mailto:jeru@163.net">jeru@163.net</A>与他联系Q?</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><img src ="http://www.tkk7.com/tangbao/aggbug/30773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tangbao/" target="_blank">p包</a> 2006-02-15 11:27 <a href="http://www.tkk7.com/tangbao/articles/30773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JFreeChart介绍?qing)经典入门资?/title><link>http://www.tkk7.com/tangbao/articles/30772.html</link><dc:creator>p包</dc:creator><author>p包</author><pubDate>Wed, 15 Feb 2006 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/tangbao/articles/30772.html</guid><wfw:comment>http://www.tkk7.com/tangbao/comments/30772.html</wfw:comment><comments>http://www.tkk7.com/tangbao/articles/30772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/tangbao/comments/commentRss/30772.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/tangbao/services/trackbacks/30772.html</trackback:ping><description><![CDATA[<div class="nxuczau" id=atc_info> <UL> <LI><A >http://www.javacn.com/Get/gui/058817144744156.htm</A></LI> <LI>文章来源: |络攉      览ơ数: <SCRIPT src="http://www.javacn.com/Click.asp?NewsID=058817144724039"></SCRIPT>       整理日期: 2005-8-8 10:07:06 </LI></UL></DIV> <UL> <LI><BR><TR><TD>//=====================================================================<BR>//TitleQJFreeChart入门指南<BR>//Author:谢莫?nbsp;Email:yyxmf111@sogou.com  QQ:35814522<BR>//=====================================================================<BR>一、JFreeChart获取?BR>        JFreeChart是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下:(x)<BR>        1、JFreeReportQ报表解军_?BR>        2、JFreeChartQJava囑Ş解决Ҏ(gu)QApplication/Applet/Servlet/JspQ?BR>        3、JCommonQJFreeReport和JFreeChart的公q?BR>        4、JFreeDesignerQJFreeReport的报表设计工?BR><BR>    我们可以从jfree官方|站上获取最新版本和相关资料Q但是jfree的document需?0金才能获取Q,<BR>    获取地址Q?A >http://www.jfree.org/jfreechart/index.html</A>Q同时可以获得简明介l)(j)<BR>    我们以当前最新版本:(x)jfreechart_0.9.21.zipZ子进行说明?BR><BR>二、JFreeChart配置安装<BR>    1、解压jfreechart_0.9.21.zip到指定位|,其中source是jfreechart的源码,jfreechart-0.9.21-demo.jar<BR>       是例?A target=_blank>E序</A>Q该部分留给大家自己ȝIӞ(j)<BR>    2、ؓ(f)?jin)配|成功,我们需要关注的<A target=_blank>文g</A>有如下三个:(x)jfreechart-0.9.21.jar、lib\jcommon-0.9.6.jar?BR>       lib\gnujaxp.jar<BR>    3、如果是Application开发,把上qC?A target=_blank>文g</A>拯?JAVA_HOME%\LIB中,同时在环境变量CLASSPATH中加?BR>       如果是WEB开发,以TOMCAT中的一个WEB目TESTZ子说明:(x)<BR>       把上qC?A target=_blank>文g</A>拯到TEST\WEB-INF\LIB中,然后修改TEST\WEB-INF\web.xml<A target=_blank>文g</A>Q在其中加入如下代码Q?BR>                <servlet><BR>                    <servlet-name>DisplayChart</servlet-name><BR>                    <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class><BR>                </servlet><BR>                <servlet-mapping><BR>                    <servlet-name>DisplayChart</servlet-name><BR>                    <url-pattern>/servlet/DisplayChart</url-pattern><BR>                </servlet-mapping><BR>               xjfreechart的配|就完成?jin),下面可以进行jfreechart的开发了(jin)。这里值得提出的是jfreechart的类<BR>       l构设计前后兼容性不是很好,不同版本的jfreechart中类库结构可能不一P有时候可能需要查源码。如?BR>       是中文显C的时候可能依据观感需要改变源码的字体Q不q我个h觉得q个版本比以前版本要好一些?BR><BR>三、JFreeChart功能介绍<BR>    JFreeChart目前是最好的<A target=_blank>java</A>囑Ş解决Ҏ(gu)Q基本能够解决目前的囑Ş斚w的需求,主要包括如下几个斚wQ?BR>    pie charts (2D and 3D)Q饼图(q面和立体)(j)<BR>    bar charts (regular and stacked, with an optional 3D effect)Q柱状图<BR>    line and area chartsQ曲U图<BR>    scatter plots and bubble charts<BR>    time series, high/low/open/close charts and candle stick chartsQ时序图<BR>    combination chartsQ复合图<BR>    Pareto charts<BR>    Gantt chartsQ甘特图<BR>    wind plots, meter charts and symbol charts<BR>    wafer map charts<BR>    (态图?饼图(二维和三l? , q?nbsp;(水^,垂直),U图,点图,旉变化?甘特? 股票行情?混和? 温度计图, d囄常用商用图表)<BR>    囑Ş可以导出成PNG和JPEG格式Q同时还可以与PDF和EXCEL兌<BR>    <BR>    JFreeChart核心(j)cd介绍Q?BR>            研究jfreechart源码发现源码的主要由两个大的包组成:(x)org.jfree.chart,org.jfree.data。其中前者主要与囑Ş<BR>    本n有关Q后者与囑Ş昄的数据有兟뀂具体研I如果大家有兴趣的话可以自己研究Q以后有旉我会(x)告诉大家怎么?BR>    研究源码?BR>         核心(j)cM要有Q?BR>           org.jfree.chart.JFreeChartQ图表对象,Mcd的图表的最l表现Ş式都是在该对象进行一些属性的定制。JFreeChart引擎本n提供?jin)一个工厂类用于创徏不同cd的图表对?BR>           org.jfree.data.category.XXXDataSet:数据集对象,用于提供昄图表所用的数据。根据不同类型的图表对应着很多cd的数据集对象c?BR>           org.jfree.chart.plot.XXXPlotQ图表区域对象,基本上这个对象决定着什么样式的图表Q创对象的时候需要Axis、Renderer以及(qing)数据集对象的支持<BR>           org.jfree.chart.axis.XXXAxisQ用于处理图表的两个_(d)(x)Uu和横?BR>           org.jfree.chart.render.XXXRenderQ负责如何显CZ个图表对?BR>           org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接<BR>           XXXXXToolTipGenerator:用于生成图象的帮助提C,不同cd图表对应不同cd的工hC类<BR>    <BR>四、JFreeChart开发(Application/AppletQ?BR>1、pie chartsQ代码如?BR>/**<BR> * Description:This application is the first jfreechart<BR> * authort:谢莫?BR> * Datetime:20058-02-11<BR> */<BR>package demo;<BR><BR>import org.jfree.chart.JFreeChart;<BR>import org.jfree.chart.ChartFactory;<BR>import org.jfree.chart.ChartFrame;<BR>import org.jfree.data.general.DefaultPieDataset;<BR><BR>public class FirstJFreeChart {<BR>  public FirstJFreeChart() {<BR>  }<BR>  <BR>  public static void main(String[] args){<BR>    DefaultPieDataset dpd = new DefaultPieDataset();<BR>    dpd.setValue("理人员",25);<BR>    dpd.setValue("?jng)场人?,25);<BR>    dpd.setValue("开发h?,45);<BR>    dpd.setValue("其他人员",5);<BR>    <BR>    //Create JFreeChart object<BR>    //参数可以查看源码<BR>    JFreeChart pieChart = ChartFactory.createPieChart("CityInfoPort公司l织架构?,dpd,true,true,false);<BR>    ChartFrame pieFrame = new ChartFrame("CityInfoPort公司l织架构?,pieChart);<BR>    pieFrame.pack();<BR>    pieFrame.setVisible(true);<BR>  }<BR>}<BR><BR>上面例子可以q一步改q,如下Q?BR>/**<BR> * Description:This application is the first jfreechart<BR> * authort:谢莫?BR> * Datetime:20058-02-11<BR> */<BR>package com.cityinforport.demo;<BR><BR>import org.jfree.chart.JFreeChart;<BR>import org.jfree.chart.ChartPanel;<BR>import org.jfree.chart.ChartFactory;<BR>import org.jfree.chart.ChartFrame;<BR>import org.jfree.data.general.DefaultPieDataset;<BR>import org.jfree.chart.plot.PiePlot;<BR>import org.jfree.data.general.PieDataset;<BR>import org.jfree.ui.ApplicationFrame;<BR>import org.jfree.ui.RefineryUtilities;<BR>import <A target=_blank>java</A>.awt.Font;<BR>import <A target=_blank>java</A>x.swing.*;<BR><BR><BR>public class FirstJFreeChart extends ApplicationFrame {<BR>  //构造函?BR>  public FirstJFreeChart(String s){<BR>    super(s);<BR>    setContentPane(createDemoPanel());<BR>  }<BR>  <BR>  public static void main(String[] args){<BR>    FirstJFreeChart fjc = new FirstJFreeChart("CityInfoPort公司l织架构?);<BR>    fjc.pack();<BR>    RefineryUtilities.centerFrameOnScreen(fjc);<BR>    fjc.setVisible(true);<BR>  }<BR>  <BR>  //生成饼图数据集对?BR>  public static PieDataset createDataset(){<BR>    DefaultPieDataset defaultpiedataset = new DefaultPieDataset();<BR>    defaultpiedataset.setValue("理人员",10.02D);<BR>    defaultpiedataset.setValue("?jng)场人?,20.23D);<BR>    defaultpiedataset.setValue("开发h?,60.02D);<BR>    defaultpiedataset.setValue("OEM人员",10.02D);<BR>    defaultpiedataset.setValue("其他人员",5.11D);<BR>    <BR>    return defaultpiedataset;<BR>  }<BR>  <BR>  //生成图表d象JFreeChart<BR>  public static JFreeChart createChart(PieDataset piedataset){<BR>    //定义图表对象<BR>    JFreeChart jfreechart = ChartFactory.createPieChart("CityInfoPort公司l织架构?,piedataset,true,true,false);<BR>    //获得图表昄对象<BR>    PiePlot pieplot = (PiePlot)jfreechart.getPlot();<BR>    //讄图表标签字体<BR>    pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,12));<BR>    pieplot.setNoDataMessage("No data available");<BR>    pieplot.setCircular(true);<BR>    pieplot.setLabelGap(0.01D);//间距<BR>    <BR>    return jfreechart;<BR>  }<BR>  <BR>  //生成昄图表的面?BR>  public static JPanel createDemoPanel(){<BR>    JFreeChart jfreechart = createChart(createDataset());<BR>    return new ChartPanel(jfreechart);<BR>  }<BR>  <BR>}<BR>带箋..........E后内容更加_ֽ</TD> </LI></UL><img src ="http://www.tkk7.com/tangbao/aggbug/30772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/tangbao/" target="_blank">p包</a> 2006-02-15 11:20 <a href="http://www.tkk7.com/tangbao/articles/30772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://zhuoyueyc.com" target="_blank">av߹ۿ</a>| <a href="http://dszb0099.com" target="_blank">˳ѹۿ</a>| <a href="http://czdlglass.com" target="_blank">vƵ߹ۿ</a>| <a href="http://lyczyb.com" target="_blank">˳վ߲</a>| <a href="http://fanhaogo.com" target="_blank">޾Ʒ</a>| <a href="http://34pmpm.com" target="_blank">Ʒһ߹ۿ </a>| <a href="http://sd-ll.com" target="_blank">޳aƬ߹ۿ</a>| <a href="http://goeqq.com" target="_blank">߹ۿ</a>| <a href="http://dd99com.com" target="_blank">AVþþƷ</a>| <a href="http://lyjhjx.com" target="_blank">18ŮˮѸëƬ</a>| <a href="http://kkjk123.com" target="_blank">ҹӰһ</a>| <a href="http://8v4y.com" target="_blank">Ů18Ƶ</a>| <a href="http://137499.com" target="_blank">һ</a>| <a href="http://lyjhjx.com" target="_blank">ĻӰӾƷ</a>| <a href="http://ccc998.com" target="_blank">˳ƵƵ </a>| <a href="http://448tk.com" target="_blank">԰߹ۿ޻ɫһƬ </a>| <a href="http://czxgjt.com" target="_blank">ַѹۿ </a>| <a href="http://qihongxia.com" target="_blank">jizzjizz߲ž</a>| <a href="http://km9c.com" target="_blank">Ƶۿڵ</a>| <a href="http://microston.com" target="_blank">avӰԺһ</a>| <a href="http://zjpcyh.com" target="_blank">޹aƵ</a>| <a href="http://15nw.com" target="_blank">avվ߹ۿ </a>| <a href="http://scbangde.com" target="_blank">ҹվѰ߹ۿ</a>| <a href="http://ksyy888.com" target="_blank">ҹƷ</a>| <a href="http://wumase.com" target="_blank">Ʒһ</a>| <a href="http://5shitou.com" target="_blank">ձ߿Ƭ˳Ƶ1000</a>| <a href="http://820111com.com" target="_blank">ͬgayվ߹ۿ</a>| <a href="http://666fzw.com" target="_blank">ҹƵ߹ۿ</a>| <a href="http://kanboy.com" target="_blank">߹۹Ļ </a>| <a href="http://zbr555sina.com" target="_blank">ѹۿһëƬa</a>| <a href="http://jinmenonline.com" target="_blank">aëƬ߲</a>| <a href="http://513net.com" target="_blank">޾ƷƬ</a>| <a href="http://shenghe228.com" target="_blank">ˬִ̼ëƬ</a>| <a href="http://littlevv.com" target="_blank">Ļȫ </a>| <a href="http://zzzttt669.com" target="_blank">þŷƷ</a>| <a href="http://006dh.com" target="_blank">߹ۿ</a>| <a href="http://6878vip.com" target="_blank">ĻƷƵѹۿ</a>| <a href="http://yygcui.com" target="_blank">Ůվѹۿ</a>| <a href="http://hucgjc.com" target="_blank">AVһҳƷ</a>| <a href="http://tjtangpu.com" target="_blank">³˿Ƭһۿ</a>| <a href="http://qingdaostf.com" target="_blank">һ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>