JAVA打包称JAR怎么带上JRE

JAVA打包称JAR怎么带上JRE
JAVA打包称JAR怎么带上JRE

让java程序带上精简的jre(附工具)

java是跨平台的东西,但有的时候我们不需要它去跨平台,我们希望能想c++做的程序一样,编码和简单

处理后能够在系统运行。

这次的项目是要放到classmate pc上,这款机器是为学生订做的,系统资源很有限,一个jre1.5就70多M,放在上面肯定是不行的。于是我找了一些相关的资料,提供链接如下:

如何制作最小的RCP程序压缩包(包含JRE)

java程序发布之jre篇

基本知道思路了,我把写的程序打包成jar,能双击运行了,然后拷贝一个jre到程序目录下,具体是这

样的,目录叫dict,dict下面有dict.jar、jre(目录),然后写了一个cmd脚本:

@echo off

set path=%cd%\jre\bin

java -jar -verbose:class dict.jar >>class.txt

pause

这样程序使用的就是当前目录下的jre,程序运行后,最好把所有的功能使用一遍,这样输出了一个文件class.txt,里面有所有需要的class,其格式如下:

[Opened D:\data\dict\jre\lib\rt.jar]

[Loaded https://www.360docs.net/doc/096971814.html,ng.Object from D:\data\dict\jre\lib\rt.jar]

[Loaded java.io.Serializable from D:\data\dict\jre\lib\rt.jar]

[Loaded https://www.360docs.net/doc/096971814.html,parable from D:\data\dict\jre\lib\rt.jar]

[Loaded https://www.360docs.net/doc/096971814.html,ng.CharSequence from D:\data\dict\jre\lib\rt.jar]

[Loaded https://www.360docs.net/doc/096971814.html,poundFileReader$FileEntry from file:/D:/data/dict/dict.jar]

我们依照这个文件来裁剪rt.jar:

首先在utralEdit中进行一些处理,去掉所有不是rt.jar中的class的行,去掉from后面的,去掉loaded 等无关项目,再把“.”替换成“/”.这个可以利用正则表达式等轻松处理。处理完后得到的文件类似如下格式:

java/lang/Object

java/io/Serializable

java/lang/Comparable

java/lang/CharSequence

java/lang/String

然后写一个脚本或者程序处理,将rt中需要的的class拷贝到另一个对应的文件夹rt1,我用java写了

一个,没有时间仔细改,但能完成人物了。代码如下:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

public class ReduceRt {

//文件拷贝

public static boolean copy(String file1,String file2)

{

try //must try and catch,otherwide will compile error

{

// instance the File as file_in and file_out

java.io.File file_in=new java.io.File(file1);

java.io.File file_out=new java.io.File(file2);

FileInputStream in1=new FileInputStream(file_in);

FileOutputStream out1=new FileOutputStream(file_out);

byte[] bytes=new byte[1024];

int c;

while((c=in1.read(bytes))!=-1)

out1.write(bytes,0,c);

in1.close();

out1.close();

return(true); //if success then return true

}

catch(Exception e)

{

System.out.println("Error!");

return(false); //if fail then return false

}

}

//读取路径,copy

public static int dealClass(String needfile ,String sdir,String odir) throws IOException {

int sn = 0; //成功个数

File usedclass = new File(needfile);

if(usedclass.canRead())

{

String line = null;

LineNumberReader reader = new LineNumberReader(new InputStreamReader(new

FileInputStream(usedclass),"UTF-8"));

while((line = reader.readLine())!=null)

{

line = line.trim();

int dirpos =https://www.360docs.net/doc/096971814.html,stIndexOf("/");

if(dirpos>0)

{

String dir = odir+ line.substring(0,dirpos);

File fdir = new File(dir);

if(!fdir.exists())

fdir.mkdirs();

String sf = sdir + line + ".class";

String of = odir + line + ".class";

boolean copy_ok=copy(sf.trim(),of.trim());

if(copy_ok)

sn++;

else

{

System.out.println(line);

}

}

}

}

return sn;

}

public static void main(String[] args)

{

String needfile = "usedclass.txt";

String sdir = "./rt/";

String odir = "./rt1/";

try {

int sn = dealClass(needfile,sdir,odir);

System.out.print(sn);

} catch (IOException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

}

}

}

我裁剪出来的rt大小为500多k。然后将rt1里面的目录和文件打包成rt.zip,改名为rt.jar,然后替换原来的rt.jar。具体的步骤可以参考上面提到的那两篇文章。

#######################

如何制作最小的RCP程序压缩包(包含JRE)

Java开发程序,发布时总要考虑的问题就是怎么在使用者的机器上装好JRE。要考虑的问题很多:使用者有没有能力独自安装JRE,使用者已有的 JRE 和我们需要的版本是不是一致,会不会出现版本问题,等等。使用.NET要考虑的问题就少些。现在.NET CLR似乎已经很普及了,看好多D版的 Win XP都会自己安装最新的.NET CLR,而且似乎它的安装界面也比JRE友好些。彻底解决安装JRE的问题的方案,就是让我们的应用程序自己背着JRE!这样,我们的程序就像传统的Win32应用程序一样,双击就可以执行,不用管所在的机器上是否有JRE,是什么版本的JRE,无论怎样,我有我自己的!要做到这一点,其实非常容易。

王森在他的《Java深度历险》(强力推荐这本书,内容少而精)的第一章就解释了JDK,JRE,JVM之间的关系。解释了我们执行java.exe时发生的事情。其中提到,java.exe依照一套逻辑来寻找可以用的JRE,首先查找自己所在的目录下有没有 JRE(据王森讲这样说不确切,我没有JDK全部的源代码,在此无从考证);其次查找自己的父目录下有没有JRE;最后才是查询Windows的注册表。

通常我们在安装好了JRE的机器上的任何一个目录下都可以执行java.exe。因为它在安装时被复制到了windows的system32目录下,而后者无论如何都会在path环境变量中。这个java.exe最终必然会访问注册表来确定真正的JRE的所在地。若我们要求每一个应用程序都自带JRE,必然不能走这条路。但,逻辑的第二条讲,java.exe会在它的父目录下查找JRE,解决方案就在这一条中。

假设我们的应用程序打好了包,叫做 MyApp.jar,放在MyApp的目录下。我们在MyApp目录下,可以执行

java ?jar MyApp.jar来运行我们的程序。我们安装的是 JRE 1.5,在C:\Program Files\Java\jre1.5.0下。现在,我们只需要简单的将jre1.5.0目录搬到MyApp目录下,顺便改个容易写的名字比如叫jre。现在,我们的应用程序就象这样:

MyApp

MyApp.jar

Jre

Jre1.5.0目录下的全部内容

Java.exe 就在jre目录下的bin目录中。根据第二条逻辑,java.exe会在它的父目录中查找jre,实验证实,它会查找lib目录,而lib就在jre目录下。因此,这样java.exe就会确定jre的所在然后正常执行java程序,不会去管我们是否安装了JRE,注册表中是否有注册项这些杂事了。

试一下,在命令行下进入MyApp的目录下,假设它在C盘,将path指向MyApp下的JRE:

set path=c:\MyApp\jre\bin

然后运行:

java ?verbose ?jar MyApp.jar

加上verbose参数以确定我们确实用了这一套被搬出了家的JRE。

程序可以运行,并且在命令行输出的前几行,可以看到:

[Opened C:\MyApp\jre\lib\rt.jar]

[Opened C:\MyApp\jre\lib\jsse.jar]

[Opened C:\MyApp\jre\lib\jce.jar]

[Opened C:\MyApp\jre\lib\charsets.jar]

因此程序读取的确实是它的私有的JRE。

至此,我们似乎完成了任务。但是现在我们的私有JRE仍不完美,缺点是太大。JRE 1.5有接近70MB,作为我们的私有的JRE,好多内容都是可以抛弃的。Jre目录下的license都可以不要,bin下的执行文件只需要保留java.exe或者javaw.exe,lib下只要保留rt,jsse, jce,charsets几个库就可以了。除了

i386和zi两个子目录外,其余的子目录都可以不要。Zi下只需要保留自己地区的子目录和其下的一些文件就可以。Lib下除了库之外的属性文件等等都要保留。这样清理一番,JRE仍然有接近50MB。还可以继续清理几个库文件里面不需要的内容,这需要仔细的整理,会很费功夫。最好能写出一个自动工具帮助我们整理它们。从Sun公司上下到的JMF里面附带的用Java写的媒体播放器就自带了JRE,只有几个 MB。清理过后需要运行几遍我们的应用程序,以确保我们的JRE不缺少东西。

如果我们希望能有一个程序直接启动我们的应用程序,那就还要费些功夫。最简单的方法是弄出一个快捷方式来,但是快捷方式的路径不能是相对的,不方便我们安装。我想到的方案就是用Win32程序包装一下。在https://www.360docs.net/doc/096971814.html,下写一个Win32小程序:

int PASCAL WinMain( HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpszCmdLine,

int nCmdShow )

{

STARTUPINFO si;

PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );

si.cb = sizeof(si);

ZeroMemory( π, sizeof(pi) );

// Start the child process.

if( !CreateProcess( "jre\\bin\\javaw.exe",//执行的程序名

"jre\\bin\\javaw.exe -jar MyApp.jar", // 带参数的执行程序

NULL, // Process handle not inheritable.

NULL, // Thread handle not inheritable.

FALSE, // Set handle inheritance to FALSE.

0, // No creation flags.

NULL, // Use parent's environment block.

NULL, // Use parent's starting directory.

&si, // Pointer to STARTUPINFO structure.

π ) // Pointer to PROCESS_INFORMATION structure.

)

{

ErrorExit( "CreateProcess failed." );

}

// Wait until child process exits.

WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.

CloseHandle( pi.hProcess );

CloseHandle( pi.hThread );

}

基本上是按照MSDN文档中的例子照搬的。将它编译成一个EXE文件,我们的任务才全部完成。双击这个EXE文件,我们的程序启动了,看起来和传统的Win32程序没有两样,JRE完全被隐藏在底层。

###################

如何制作最小的RCP程序压缩包(包含JRE)

如果开发完了一个RCP应用程序,要安装到客户端,那么这个安装文件会有多大呢,我们当然希望是越小越好。

我们先算一下普通方式下的文件大小:

jre1.5 安装程序 16M

rcp3.2 runtime 9M

rcp应用程序(包含用到的第三方的lib)此处假设 2-3M

那么将这些文件打成包后的大小将为28M左右,一个普通的rcp安装程序居然会有这么大。这实在有点令人难以接受。

难道就不能再小一点吗?我们多么希望有一个小巧的RCP安装程序啊。答案是肯定的,我们完全可以将RCP安装程序控制在10M以内,甚至更小。

此处只介绍如何压制一个最小的RCP压缩包,至于如何制作安装程序,已经超出了讨论的范畴,只要有了最小的压缩包,不论用何种安装程序,都可以制作出10M以下的RCP安装程序。

第一步: jre 减肥

jre1.5安装程序有16M,这可是一个大东西,客户想要运行RCP程序,首先就要安装JRE。这也是很多客户反感的,jre里面包含了太多的东西,很多是rcp程序根本用不到的,比如swing库,如果全是用swt

开发,swing包就多此一举了。而且JRE的安装程序也不见的那么健壮,笔者就曾经两次遇到在不同的机器上不能成功安装jre的情况,而且通过添加删除程序也删不掉,非常烦人。其实完全没有必要安装JRE,

只需要在rcp安装目录下建一个jre目录,里面包含jre用到的文件就可以了。rcp程序启动时,会首先查找当前目录下有没有jre目录,如果有,就用里面的jre,如果没有才去注册表查找jre。接下来,我们看看这个jre目录里面都有哪些东西,一些不要的统统删掉,至于删掉哪些,要根据情况而定,这个需要反复实验才能确定哪些有用,哪些没用。最后bin目录笔者保留了必须的dll和exe文件,llib目录里面,只保留了rt.jar和charsets.jar这两个库。但是rt.jar还是太大了32M,既然要减肥,那就彻底减到底吧,用winrar或者其他解压缩工具打开rt.jar,看看哪些包里面的class不需要,就统统删掉。例如,客户端不需要swing,javax.swing包干掉,客户端不需要rmi,javax.rmi包干掉,删来删去,最后rt.jar 变成了10多M, charsets.jar这个包也挺大8M,里面包含了不同的字符集编码,其实很多字符集都用不到,根据情况挑选你所用的吧。

到了这一步,jre已经瘦了一圈了,但还是不能达到我们的目的,如果用普通的压缩工具压缩jre目录后,基本可以达到10到12多M。这离我们的目标还差好大一快呢。jre还的减肥,这次狠一点,拿出我们的杀手武器pack200,pack200是java1.5自带的(在jre\bin\目录下)一个针对class文件进行压缩的工具,由于专门针对class文件进行了优化,压缩比高的惊人(当然速度也比普通压缩软件慢多了)pack200的用法请自行参考相关文档

。先用pack200把rt.jar,和charsets.jar压缩一下,然后用其他压缩软件对jre整个目录压缩一下,压缩后的大小让你吃惊,如果用rar,压缩出来的是4M,zip高一些4.8M。可能是笔者删的东西太多了,所以会这么小。但这里还包含一个8M的charsets.jar文件。笔者试过,如果不包括charset.jar,用rar

压缩后大小为2.88M,这实在太惊人了,有谁能想象一个只有2.88M的JRE,遗憾的是charset.jar是必须的,你可以删掉里面一些不要的字符集这样能压出来的jre也再3M-4M之间。必须注意的是,解压缩的时候,还要用pack200解开压缩后的jar文件。整个步骤就是压缩两遍,第一遍用pack200压缩所有的jar 文件,第二遍再用一个其他压缩软件压缩jre目录。这样就能得到一个很小的jre压缩包。

看到这里,有人开始怀疑,这个3M多的JRE能用吗?笔者就曾将这个jre放到eclipse目录下,eclipse 启动一切正常,进去后可以继续写我的java代码,还可以编译java文件(其实eclispe本身不需要tools.jar,它自己就带了一个很强的java编译器),从cvs下载文件也不成问题,试了一圈,没发现有什么出错的地方。当然,包不齐,少了那个class文件,就会出错了,所以删除class文件的时候,尽量不要多删。如果你很熟悉每个class文件的用途,就可以放心的去删了。如果SUN能出一个 MINI JRE 那就更好了。

第二步: RCP插件减肥

记不清从eclipse3.1起的那个版本,已经开始支持将插件打包成一个jar文件,甚至这个插件里面包含着其他的jar文件,这在3.1以前只能创建一个插件目录。既然插件可以打包成jar文件,那么pack200就派上用场了,同压缩jre一样,此处就不在叙述了。

值的注意的问题是,有的插件jar文件里面包含一个目录lib,lib里面又包含了其他的jar文件,那么用pack200对这个插件jar压缩的时候,lib里面的jar文件是不会压缩的。这个也不是什么问题,只要写个小程序,对lib里面的jar文件压缩一下就行了。

笔者实验的所做的RCP的插件压缩后的大小为6M多,这里面包括rcp runtime 必须的插件,以及自己开发的rcp程序,用到的第三方库,以及eclipse的一些插件emf,gef,jface-databinding等,这些加起来压缩后总共6M多。如果你用的插件不是那么多,压缩后的肯定更小。这样加上jre,整个程序控制在了10M以内。

让人非常讨厌的是,从eclispe3.2M5 起,又加了一个com.ibm.icu的插件,这个插件竟然有3M多,而且这个插件是rcp runtime必须的。其实这个插件又是一个和字符集相关的插件,里面很多字符集是程序用不到的,除非你的程序要支持多语言,但也不会把所有的语言都囊括吧。如果每个字符集都能做成一个插件,只挂接自己想需要的,哪可真是太好不过了。希望eclispe3。3会改进这一点。

Eclipse中指定第三方包JAR和类路径CLASSPATH的几个方法

在Java类中,我们可以通过“import + 包名+ 类名”的方式引用第三方包(jar)或者第三方类(class),但你得告诉Java编译和运行环境到哪里去找这些库或者类,如果这些没有设置好,就会出现类似于某某类无法解析,NoClassDefFoundError等问题。因此,我们必须通过Eclipse指定这些路径来告诉Jvava的开发和运行环境,到哪里去找这些包和类。 1,通过环境变量指定JAR包 Window->Preferences->Java->Build path->Classpath variables,用一个变量指定包的位置,类似于环境变量中设置CLASSPATH。由两个部分组成,一个是name,指定变量名;一个是file path,指定jar包所在位置,或者是folder,指定类文件所在文件夹。这样的好处是如果包的位置发生了变化,我们只需要回到这个地方修改jar包和类的位置,而项目中对于这些包和类的引用不需要修改。 2,通过建立用户库同时指定多个JAR包 Window->Preferences->Java->Build path->User libraries,创建一个用户库,可以向其中添加多个jar,因为可能有多个项目,而每个项目又可能同时引用多个同样的包(jar),把这些包放在同一个user libraries下,就可以让每个项目只引用这一个库就OK了,省去每次需要为每个项目添加多个包的麻烦。 3,指定项目开发中使用的jar(出现在package explorer的Referenced libraries中): project->properties->java build path->libraries 出现几种添加jar包的方式,这里分别解释一下 a,Add JARs... 添加项目内的jar包到项目的引用路径中。 有时候,我们会把一些第三方包放到我们的项目的文件夹中(比如a.jar),一般我们会给这个文件夹取名lib。方法是在Windows中,在Workspace/%项目目录%下建立一个新的文件夹,取名lib,然后把a.jar文件拷贝到lib中。回到Eclipse,在package explorer (包资源管理器)中点击右键,选择“Refresh(刷新)”,即可看到我们的lib文件夹和a.jar 文件。然后通过Add JARs...即可添加a.jar到项目引用。 b, Add External JARs 添加外部jar包到项目中。这样不好的地方在于外部jar包一旦更改位置,则必须重新配置项目,不如其他方式灵活,所以不建议使用。 c, Add variables 添加变量,添加1中定义的环境变量。 d, Add libraries 添加库,可以添加JRE System Library等,其中User Library是在2中你建立的用户库,而Junit则可快速的把Junit需要的包加入到当前项目的引用中来。 e, Add class folder 故名思意,添加类所在的文件夹 4,指定运行时使用的jar(运行时使用) 这里的JAR有两部分,一部分是JRE JAR,运行时环境下的系统JAR,一种是USER Entries,其中%项目名%子目录中是Package Explorer视图中Referenced Libraries中引用的jar。你可以在这里指定运行时JAR,只要放在Referenced Libraries中引用的jar 之前。 a, Run->Open run dialog->classpath b, Run->Open debug dialog->classpath

常用包 Java 功能介绍

Java的常用包简介 JVM的常用包一般在C:\Program Files\Java\jre1.5.0_04\lib\rt.jar 一般都会放在C:\Program Files\Java\jre1.5.0_04\lib下 jdk的一般在C:\Program Files\Java\jdk1.5.0_04\jre\lib 源代码在C:\Program Files\Java\jdk1.5.0_04\src.zip java调用的包像String啊这些自带的包的源代码都可以在这里找到。 一般碰到不会用的类都是直接去看API文档的。 1、https://www.360docs.net/doc/096971814.html,ng包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。 2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等。 3、java.util包:Java的实用工具类库Java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。包含如处理时间的date类,处理变成数组的Vector类,以及stack和HashTable 类。 4、java.util.zip包:实现文件压缩功能。 5、https://www.360docs.net/doc/096971814.html,ng.reflect包:提供用于反射对象的工具。 6、java.awt.image包:处理和操纵来自于网上的图片的java工具类库。 7、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行。 8、java.applet包:用于执行小程序的类,如Applet类。 9、https://www.360docs.net/doc/096971814.html,包:实现网络功能的类库有Socket类、ServerSocket类。 10、java.corba包和java.corba.orb包。

Eclipse中将Java项目 打包为jar,并且引入第三方jar包 解决办法

如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如: Manifest-Version: 1.0 Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.j ar lib\mysql-connector-java-3.1.13-bin.jar Main-Class: src.YourMainClassName 其中的Class-Path就指定了外来jar包的位置。请注意假设我们的项目打包后为pr oject.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib 文件夹,并将相关的jar包放在里面。否则将会出现Exception in thread "main" https://www.360docs.net/doc/096971814.html,ng.NoClassDefFoundError的错误。 注意:如果在Class-Path 中引入比较多的jar包,不要写成一行,不然会报:java. io.IOException : line too long ,需要分多行写,第二行以及下面的第三行、第四行写的时候需要在前面空两格(敲两下空格键)即可 最后介绍一下使用Eclipse制作jar包的过程吧: 1. 首先在Eclipse中打开项目,右键点击项目,选择“Export”; 2. 选择Java/JAR file,Next; 3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间; 这里有几个选项: * Export generated class files and resources 表示只导出生成的.clas s文件和其他资源文件 * Export all output folders for checked projects 表示导出选中项目 的所有文件夹 * Export java source file and resouces 表示导出的jar包中将包含你 的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了 * Export refactorings for checked projects 把一些重构的信息文件也 包含进去 在Select the export destination中选择导出的jar的路径,Next 4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next 5. 下一个页面里可以对项目做一些配置。 * Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,

Java程序员必须了解的20个lib库

Java程序员必须了解的20个lib库 一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提高我们的开发效率,下面就来看一下在开发过程中经常会用到的一些开发第三方库,也可能不是太全,就列举一些常见或者常用的吧。 1,日志库 日志库是最常用的,毕竟在开发项目的过程中都需要使用日志来记录项目的运行信息,从而很快的定位项目的发生的问题。尽管JDK附带了自己的日志库,但是还有更好的选择,例如Log4j、SLF4j和LogBack。一般建议使用SLF4j。比如Alibaba开发手册上也是这样说的,毕竟SLF4J使您的代码独立于任何特定的日志API,就是在项目的其它框架中使用了其它的日志框架库也能够很好的集成。 2,JSON转换库 在当今的web服务、手机api接口开发和物联网世界中,JSON已经成为将信息从客户端传送到服务器的首选协议。它们前端要学好必须每天坚持学习。为了方便大家的交流学习,也是创建了一个群每天都有分享学习方法和专业老师直播

前端课程,这个扣裙首先是132 中间是667 最后是127 前端学习零基础想要学习的同学欢迎加入,如果只是凑热闹就不要来了!!!已经取代了XML,成为以独立于平台的方式传输信息的首选方式。不幸的是,JDK没有JSON库。但是,有许多优秀的第三方库允许您解析和创建JSON消息,比如Jackson和Gson,FastJson。 3,单元测试库库 单元测试是区分普通开发人员和优秀开发人员的最重要的东西。程序员经常被给予不写单元测试的借口,但是最常见的避免单元测试的借口是缺乏流行的单元测试库的经验和知识,包括JUnit、Mockito和PowerMock。 4,通用类库 Java开发人员可以使用一些优秀的通用第三方库,比如Apache Commons和谷歌Guava。我总是在我的项目中包含这些库,因为它们简化了许多任务。正如约书亚?布洛赫(Joshua Bloch)在《Effective Java》一书中正确指出的那样,重新发明轮子是没有意义的。我们应该使用经过测试的库,而不是时不时地编写我们自己的程序。对于开发人员来说,熟悉Apache Commons和谷歌Guava 是很有用的。 5,HTTP库

如何将Java文件打包成jar文件

把java文件打包成.jar (jar命令详解) 2007-09-14 11:29 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么: 用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用zip压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。 示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:

示例2:用一个存在的清单(manifest )文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中: 来个小例子试试看: 我们只有一个HelloWorld ,如下: 将这个java 文件存到C 盘跟目录下,ok ,接下来, 在先前打开的命令提示符下(跳转到C 盘提示符下),我们输入javac HelloWorld.java ,然后继续输入: jar cvf hello.jar HelloWorld.class ,回车后去你的C 盘看看,多了什么,没错 hello.jar 。 基本的步骤我们现在都知道了,你可以自己去尝试一下随着jar 后面的参数的不同,结果有什么变化。 紧接着我们看看如何运行我们的jar 包。 在进入正题之前,你要先打开我们刚刚做好的jar 包看看,多了什么呢,META-INF 目录?再看看里面是什么,还有一个MANIFEST.MF 文件是不是?用文本编辑器(我这里是UltraEdit)打开它看看: 就是这样。这里我们对它进行修改,加一句:Main-Class: HelloWorld (在 第三行)。这个就是我们之前写的那个类,也就是我们的入口类。也即,

java开发常用的jar包的作用解释

java开发常用的jar包的作用解释 转载自: https://www.360docs.net/doc/096971814.html,/chaod5659/article/details/8250845 java开发中主要用到的jar包描述commons-io.jar: 可以看成是java.io的扩展,用来帮助进行IO功能开发.它包含三个主要的领域:Utilityclasses-提供一些静态方法来完成公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与writer实现. commons-beanutils.jar: 提供对Java反射和自省API的包装,主要提供了对于JavaBean进行各种操作。 commons-digester.jar: 它能方便地将XML文档所定义的元素转化为JAVA对象,其实它的用法有点象栈(当然内在的原理就是那个古老的东

西,只是提供了更高一层的封装)。 commons-lang.jar: 它扩展了标准https://www.360docs.net/doc/096971814.html,ngAPI,增加了字符串操作方法、基本数值方法、对象反射、创建和串行化以及System属性。它还包含一个可继承的enum类型、对多种嵌套的Exception 类型的支持、对java.util.Date的增强以及用于构建方法的实用程序,例如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。 ArrayUtils–用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等; BitField–用于操作位元,提供了一些方便而安全的方法; BooleanUtils–用于操作和转换boolean或者Boolean及相应的数组;

Eclipse导出jar文件的两种方式

具体做法如下: 方法一:(工程没有引用外部jar包时,直接导出) 选中工程---->右键,Export...--->Java--->JAR file--->next-->选择jar file的路径及名称-->next-->next---> 选择main class--->finish. 方法2: 当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包的功能,所以比较麻 烦一点;具体步骤如下: 生成manifest file:选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路 径及名称--->next--->next--->next; 此时来到了方法1中要选择main class的窗口,但这里先不选择main class,选择最上方的Generate the manifest file, 勾上Save the manifest in the workspace,在Manifest file:中输入file的名称,如/testProject/main,(其中testProject为工程名,main为man ifest file的名称)点击finish,回到工程,打开刚刚生成的main,在这里要输入如下信息: Manifest-Version: 1.0 Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties Class-Path: jxl.jar 其中,Manifest-Version: 1.0为刚刚自动生成的manifest版本号; Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties为main cl ass所在类; Class-Path: jxl.jar为外部jar包名称,这里是告诉导出的jar包,所要用到的外部的jar包 的路径及名称。 上面都做完了就可以导出带外部jar包的jar包了,步骤如下: 选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路径及名称--->next --->next--->next,这时又来到了选择main class的窗口,但这里也不选择main class,选择Use existing manifest from workspace,在Manifest file:里选择刚刚生成的main,如:/testProject/main,点击finish,到此就大功告成啦;假设生成的jar包的名称为test.j ar,那么Class-Path中引入的jxl.jar要和test.jar位于同一个目录下。 这里还有一点要注意: 如果想在命令行中运行刚刚生成的jar,命令如下: java-jar test.jar 如果在jar中有一些System.out.prinln语句,运行后想看看打印出的内容,可以用一下命令: java -jar test.jar >log.txt 输出信息会被打印到log.txt中,当然log.txt自动生成,并位于和test.jar一个目录中。 这里也可以新建一个start.bat文件,创建后;右键---编辑,输入:java -jar test.jar >log. txt;以后直接双击start.bat即可运行test.jar啦。 此部分来自CSDN博客,转载请标明出处:https://www.360docs.net/doc/096971814.html,/kanfeikanfei/archive/2009/03/25/402 4304.aspx

JAVA读取jar包内部配置文件

package com.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import https://www.360docs.net/doc/096971814.html,.URL; import java.util.Properties; import java.util.jar.JarEntry; import java.util.jar.JarFile; public class Test9 { public static void main(String[] args) throws IOException { String jarName="/test_p.jar";//Jar包所在的位置 String fileName="config/application.properties";//文件在jar包里的路径 String resource = Test9.class.getResource(jarName).getFile(); File file = new File(resource); JarFile jarFile = new JarFile(file);//读入jar文件 JarEntry entry = jarFile.getJarEntry(fileName); InputStream input = jarFile.getInputStream(entry);//读入需要的文件 Properties props = new Properties(); props.load(input); System.out.println(props.getProperty("Driver")); jarFile.close(); } }

java开发常用jar包

java开发常用jar包 mail.jar与activation.jar 里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的 commons-beanutils.jar Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是https://www.360docs.net/doc/096971814.html,ng.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含日志功能 commons-io.jar Apache Commons包中的一个,java.io.*的扩展,输入输出,支持文件上传 commons-fileupload.jar Apache Commons包中的一个,是一个通过Http接收上传的文件并处理结果文件的库 dom4j-1.4.jar 和jaxen-1.1.1.jar 是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar

Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。 hibernate3.jar hibernate3的核心类库。 itext.jar 是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试代码的时候需要,否则就不用。 commons-digester.jar Apache Commons包中的一个,通过它可以很方便的解析xml文件生成java对象aspectjrt.jar 和aspectjweaver.jar Annotation 方式实现AOP commons-dbcp.jar commons-pool-1.2.jar DBCP数据库连接池 cglib-nodep-2.1_3.jar CGLIB是一个强大的高质量高性能的代码生成库,在运行时可以用它来扩展Java类 jfreechart-1.0.12.jar

java常用jar包

java常用jar包(未整理) 2011-05-11 14:58:50 分类:Java Hibernate一共包括了23个jar包,令人眼花缭乱。本文将详细讲解Hibernate每个jar包的作用,便于你在应用中根据自己的需要进行取舍。 下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包: hibernate2.jar: Hibernate的库,没有什么可说的,必须使用的jar包 cglib-asm.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 dom4j.jar: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也 是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在 那个方面都是非常出色的。我早在将近两年之前就开始使用dom4j,直到现在。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在 用dom4j。这是必须使用的jar包,Hibernate用它来读写配置文件。 odmg.jar: ODMG是一个ORM的规范,Hibernate实现了ODMG规范,这是一个核心的库,必须使用的jar包。 commons-collections.jar:Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。 commons-beanutils.jar:Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-lang.jar: Apache Commons包中的一个,包含了一些数据类型工具类,是https://www.360docs.net/doc/096971814.html,ng.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含

Java程序打成Jar包做成EXE安装程序(2)

J a v a程序完成以后,对于W i n d o w s操作系统,习惯总是想双击某个e x e文件就可以直接运行程序,现我将一步一步的实现该过程.最 终结果是:不用安装J R E环境,不用安装数据库,直接双击一个e x e 文件,就可以运行程序. 下面我将以我最近写的一个程序作例子,进行该打包过程. 该程序是使用了:H i b e r n a t e,S p r i n g,D e r b y的J a v a G U I.(J D K 需要1.6版本,因该版本才有D e r b y),我使用的是E c l i p s e进行开发. 第一步:完成J a v a G U I程序 在E c l i p s e下,程序能够正常运行. 第二步:准备清单文件(M A N I F E S T.M F) 方法1:直接拷贝其它能运行的J A R文件中的M A N I F E S T.M F 进行修改 方法2:利用I D E工具,如E c l i p s e在生成J A R文件时自动生成 M A N I F E S T.M F内容如下: M a n i f e s t-V e r s i o n: 1.0 M a i n-C l a s s:m a n a g e r.u i.M a i n F r a m e C l a s s-P a t h: ./l i b/s p r i n g.j a r ./l i b/h i b e r n a t e.j a r ./l i b/d e r b y.j a r S p l a s h S c r e e n-I m a g e r: m a n a g e r/r e s o u r c e s/i m a g e s/s p l a s h.j p g 说明: M a n i f e s t-V e r s i o n-指定清单文件的版本号 M a i n-C l a s s-指定程序运行的入口类。注意:类名后不要加c l a s s扩展名 C l a s s-P a t h-指定支持库的路径。“.”指程序运行目录,即导出的J A R包所在目录。程序运行时依据C l a s s-P a t h项的设置路径来查找支持库。每一个支持库之间用空格隔开。在这里使用了 h i b e r n a t e,s p r i n g,d e r b y. 注意:

Eclipse中将项目导出jar包,以及转化成exe的方法

Eclipse中将项目导出jar包,以及转化成exe文件 2011-06-27 09:24 一、导出jar文件: 如果你的程序开发已经接近尾声了,正准备将其生成桌面可执行文件却不知道该如何操作时,你只要按照 以下步骤实行即可:选中你的项目---然后右击弹出选项列表---选择Export---Java---jar file---next---browser(选择jar的存放路径)---next---next(不管太多继续下一步)---browser(选择你 程序的主类--OK)---finish;查看你存放jar的目录,是否已经生成了?如果没有你一定没按照步骤操作. 二、运行jar文件: 生成的jar文件你可以双击运行它,但默认情况下会以压缩包的方式打开,如果这不是你想要的结果,请右 击文件---打开方式---选择java(TM)platform来运行.我想这时你应该看到了你的软件界面.先恭喜你了.. 三、连同第三方文件一并导出至jar文件: 如果你在程序开发的时候用到了第三方提供的API或者其它附属资源,在你导出生成jar文件时你必须将 第三方的文件一并导出,不然你的程序运行将达不到你想要的结果. 你可以利用Fat jar插件生成jar,Fat jar 的下载地址:https://www.360docs.net/doc/096971814.html,/projects/fjep/下载的文件是net.sf.fjep.fatjar_0.0.31.zip,解压缩后你会看到plugins文件夹中的 net.sf.fjep.fatjar_0.0.31.jar文件(简称Fat jar). 插件安装:把Fat jar文件拷贝到你的eclipse目录下的plugins中..重新启动你的eclipse平台,然后 查看Window---preferences,弹出的窗口中有Fat jar preferences这一项则说明你已经安装成功了,没有这一项则未安装成功,需要多做如下几步操作:到你的eclipse目录下的 configuration---org.eclipse.update,并删除platform.xml文件,然后重新启动eclipse.查看 Window---preferences,你会发现Fat jar preferences这一项.恭喜你安装成功了.(未成功可直接去墙撞死).. 用Fat jar打包:右击你的项目,选项列表中有Build Fat jar这一项,选择它,弹出的窗口你会觉得特别 亲切,一目了然使用很方便,点击Browser(Main-Class选择你的主类)---next---finish(勾选你需要一起 打包的资源,默认为全部勾选).瞧,jar文件就生成在你的工程项目中了.运行它,一切顺利,否则就是你编程的问题了.. 另:如果你不想用Fat jar来打包,有一个更快捷的方法可以帮助你,但也是有缺陷的. 步骤:将你需要用到的附属文件放到你的jre安装目录下的\lib\ext目录中(安装JDK的同时也安装了jre),再通过(一、导出jar文件)的方式生成jar.这样就可以了.它有个致命的缺点就是,这样的jar文件只能在你本机可以使用,如果要在别的机子上运行必需在\lib\ext放置同样的附属资源. 四、将jar文件转换成exe可执行文件:

通过oracle,调用java类,并加载jar包到oracle中以支持java类

根据鬼子要求,最初的单纯使用oracle发送和接收mail被抛弃(上一篇文章描述了具体实现),转而要求使用oracle调用java,并通过javamail来实现mail的相关处里。这里问题就出现了,我编写过java,我编写过pl/sql,但是,从来没听说过使用oracle来调用java。同事没有一个作过的。不过,后来察看了相关资料,才知道,这个技术还确实有。于是做如下的相关记录。 我要做的第一个是把我之前编好的一个压缩功能java类和其需要的jar包文件加载到oracle中,并使其能够被成功调用。如何压缩文件,稍后处理。我们先说如何加载java类和jar包到oracle。 首先,压缩功能需要的环境配置: 1、操作系统需要拥有支持loadjava命令的jdk。 2、加载jlha.jar包,到oracle数据库中。 操作过程:在dos环境下,输入命令: loadjava -r -f -o -user usscares/usscares@usscares jlha.jar 这个命令就是oracle加载jlha.jar包的命令。 编写好需要的,负责压缩的类:Directoryzip 在其源文件头插入一行:create or replace and compile java source named directoryzip as 并执行在数据库commandwindow中,则导入数据库。 既然已经成功导入类到oracle中,那么接下来就是编写函数,使得oracle能够调用此类中的代码: [SQL]view plaincopyprint? 1.create or replace function zipblob (returnBLob BLOB,inBlob BLOB,filename VA RCHAR2) return BLOB

命令行下编译java并生成jar包(1)

命令行下编译java并生成jar包 jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布。 为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java 存档文件。这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部署)。 那我们的输入(要压缩的东西)主要是class文件,还有辅助的资源(这其中可能有图片,jsp文件,html文件等等)。Jar技术在jdk1.1版本中就已存在,在1.2中又有了增强。接下来说说jar的好处吧,这是官方的描述:安全,快速下载,压缩,猎取包,版本化包,可携。 说了这么多,我们现在开始实施。 先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar –help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么: 用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名… 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用ZIP压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和存档文件名都需要被指定,按‘m‘ 和?f‘标志指定的相同顺序。 示例1:将两个class文件存档到一个名为?classes.jar‘ 的存档文件中: jar cvf classes.jar Foo.class Bar.class 示例2:用一个存在的清单(manifest)文件?mymanifest‘ 将foo/ 目录下的所有 文件存档到一个名为?classes.jar‘ 的存档文件中: jar cvfm classes.jar mymanifest -C foo/ . 来个小例子试试看: 我们只有一个HelloWorld,如下: public class HelloWorld{ public static void main(String[] args){ System.out.println(―Hi, Hello World!‖); } }

jar包是什么

什么是jar包 JAR(Java ARchive,Java 归档)是一种与平台无关的文件格式,可将多个文件合成一个文件。用户可将多个Java applet 及其所需组件(.class 文件、图像和声音)绑定到JAR 文件中,而后作为单个的简单HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。JAR 格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。另外,applet 编写者也可在JAR 文件中用数字签名的方式签写各项以确认其来源。它用Java 编写,可与现有的applet 代码完全向后兼容且可充分扩展。JAR 文件就是Java Archive File,顾名思意,它的应用是与Java 息息相关的,是Java 的一种文档格式。JAR 文件非常类似ZIP 文件——准确的说,它就是ZIP 文件,所以叫它文件包。JAR 文件与ZIP 文件唯一的区别就是在JAR 文件的内容中,包含了一个META-INF/MANIFEST.MF 文件,这个文件是在生成JAR 文件的时候自动创建的。 JAR文件是跨平台的,所以不必关心涉及具体平台的问题。除了可以包括声音和图像文件以外,也可以在其中包括类文件。 涉及因特网应用时,JAR文件显得特别有用。在JAR文件之前,Web浏览器必须重复多次请求web服务器,以便下载完构成一个“程序片”(Applet)的所有文件。除此以外,每个文件都是未经压缩的。但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。同时,由于采用了压缩技术,所以可在更短的时间里获得全部数据。另外,JAR文件里的每个入口(条目)都可以加上数字化签名(详情参考Java用户文档)。

Java项目打包发布

Java项目打包发布 如果只想发布为一个可执行的jar包,使用eclipse的Export功能就可以了 使用eclipse的Export功能,将项目中的所有package打包为一个pet.jar文件,假定项目中所有配置文件都在项目根目录的config文件夹. 新建一个文件夹bushu,将项目中的config文件夹放进来 用winrar打开项目引用的所有jar文件,将文件中的所有包文件夹添加进pet.jar 文件 创建pet.dat文件,内容:start java -Xmx512m -jar pet.jar 运行pet.dat 如果最终想发布为可执行程序我使用开源项目jsmooth提供的软件项目地址 使用eclipse的Export功能,将项目中的所有package打包为一个pet.jar文件,我的项目中所有配置文件都在项目根目录的config文件夹. 新建一个文件夹bushu,将项目中的config文件夹、引用的外部jar包和pet.jar 文件都放进来,所有包文件都放到bushu下的lib目录下 打开jsmooth,新建一个项目,设置好后编译就可以生成exe文件,附件中我截取了所有jsmooth配置的图片. 首先,将编译好的程序打包成jar文件,然后做出exe,这样代码就不可见了;但是exe文件在没有安装jre的电脑上不能运行,如果要求客户再去安装jre 设置环境变量就不雅了。我们需要将jre打包。 这几步操作网上介绍的插件和方法很多,但有的好用有的不好用,而且有的还需要注册。经过尝试比较,在“千里冰封”的博客上得到了很大的帮助。整理一下。使用这几个工具,您也可以顺利的发布您的java程序! 1 打包成双击可执行的jar文件。 推荐插件:fatJar(Eclipse使用) 下载地址 https://www.360docs.net/doc/096971814.html,/project/showfiles.php?group_id=115990&package_id=125924 我用的是Eclipse,它自带的打包方法在打包一些图片等资源时不是很爽。可以使用这个插件。

eclipse导出jar包

软件配置 打包文件源码 一、eclipse导出jar包 二、cmd命令执行Jar包 软件配置 操作系统: win10 企业版 软件配置: JDK:1.8.0_241; eclipse:Oxygen.3a Release (4.7.3a);打包文件源码 Java工程名称:serialNum,其中有个java文件SetserialNum.java SetserialNum.java内容如下: package serialNum; import java.text.SimpleDateFormat; import java.util.Date; public class SetserialNum { public String setNum(String theLetter) { //传入A,现在时间为2020年03月30日12点45分18秒,最终生成A20200330124518 String serialNum=""; Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat("YYYYMMddHHmmss"); serialNum=theLetter+ft.format(dNow); return serialNum; } public static void main(String str[]) { SetserialNum serial = new SetserialNum(); String dstr=serial.setNum("A"); System.out.println(dstr);

Java中常用包的主要作用

Java中常用包的主要作用 java.util是JAVA的utility工具包 https://www.360docs.net/doc/096971814.html,ng是JAVA的language核心语言包 java.awt是JAVA的abstract window toolkit, 抽象窗口工具包java.applet是创建APPLET的必须包 https://www.360docs.net/doc/096971814.html,是JAVA有关网络操作的包 java.io是JAVA的输入输出流的包 java.sql是JAVA的数据库操作包 javax.swing是新的界面包 javax开头的都是扩展包 ------------------------------------------------------ java.applet 支持小应用程序的结构 java.awt 提供图形用户接口的能力 java.awt.color 支持颜色空间和外形 java.awt.datatransfer 与系统的剪贴板交换数据 java.awt.dnd 支持拖拉操作 java.awt.event 处理事件 java.awt.font 描述多种字体类型 java.awt.geom 允许你使用几何形状 java.awt.im 允许编辑组件中日文,中文,韩文的输入 java.awt.im.spi 支持二选一的输入设备(在Java 2, v1.3中加入)

java.awt.image 处理图像 java.awt.image.renderable 支持独立显示图像 java.awt.print 支持一般的打印功能 java.beans 允许你建立软件组件 java.beans.beancontext 为bean 提供可执行环境java.io 输入输出数据 https://www.360docs.net/doc/096971814.html,ng 提供核心功能 https://www.360docs.net/doc/096971814.html,ng.ref 使能与垃圾回收交互 https://www.360docs.net/doc/096971814.html,ng.reflect 运行时分析代码 java.math 处理大整数和十进制数 https://www.360docs.net/doc/096971814.html, 支持网络功能 java.rmi 支持远程方法调用 java.rmi.activation 激活永久对象 java.rmi.dgc 管理分布垃圾回收 java.rmi.registry 映射名称到远程对象引用 java.rmi.server 支持远程方法调用 java.security 处理证书,密钥,摘要,签名和其他安全功能java.security.acl 管理访问控制列表 java.security.cert 分析和管理证书 java.security.interfaces 为DSA(数字签名算法)定义接口java.security.spec 设定密钥和算法参数

相关文档
最新文档