⑴ 怎么引用jar包中的类
在eclipse中新建一个项目-->项目右键-->Build Path-->Add External Archives--> -->tomcat-->lib-->servlet-api.jar
把需要的类直接写入你的程序中,导包可以使用快捷键:Ctrl + Shift + O,如下图:
⑵ 怎么查找那个类在哪个jar包
用winrar打开jar,查看即可
if 使用的eclipse,ctrl+shift+t 搜该类,点击工程上面那个图标,定位到该类jar即可
⑶ 如何获取一个jar包里面的所有的类信息
如果你看过一些框架的源码,就知道大多数情形时他们都是先找到某个包的对应的文件位置,并遍历其下面的文件,读取其文件名,对应的就是类名。
java">/*
*@(#)PackageUtil.java1.002006-11-27
*
*Copyright(c).,Ltd.Allrightsreserved.
*/
packageorg.rut.core;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.jar.JarEntry;
importjava.util.jar.JarInputStream;
/**
*@since2006-11-27
*@authorwushugen
*
*ModifiedHistory:
*
*/
publicclassPackageUtil{
/**
*@paramargs
*@throwsIOException
*/
publicstaticvoidmain(String[]args)throwsIOException{
List<String>cls=getClassInPackage("java.util");
for(Strings:cls){
System.out.println(s);
}
}
publicstaticList<String>getClassInPackage(StringpkgName){
List<String>ret=newArrayList<String>();
StringrPath=pkgName.replace('.','/')+"/";
try{
for(FileclassPath:CLASS_PATH_ARRAY){
if(!classPath.exists())continue;
if(classPath.isDirectory()){
Filedir=newFile(classPath,rPath);
if(!dir.exists())continue;
for(Filefile:dir.listFiles()){
if(file.isFile()){
StringclsName=file.getName();
clsName=pkgName+"."+clsName.substring(0,clsName.length()-6);
ret.add(clsName);
}
}
}else{
FileInputStreamfis=newFileInputStream(classPath);
JarInputStreamjis=newJarInputStream(fis,false);
JarEntrye=null;
while((e=jis.getNextJarEntry())!=null){
StringeName=e.getName();
if(eName.startsWith(rPath)&&!eName.endsWith("/")){
ret.add(eName.replace('/','.').substring(0,eName.length()-6));
}
jis.closeEntry();
}
jis.close();
}
}
}catch(Exceptione){
thrownewRuntimeException(e);
}
returnret;
}
privatestaticString[]CLASS_PATH_PROP={"java.class.path","java.ext.dirs",
"sun.boot.class.path"};
privatestaticList<File>CLASS_PATH_ARRAY=getClassPath();
privatestaticList<File>getClassPath(){
List<File>ret=newArrayList<File>();
Stringdelim=":";
if(System.getProperty("os.name").indexOf("Windows")!=-1)
delim=";";
for(Stringpro:CLASS_PATH_PROP){
String[]pathes=System.getProperty(pro).split(delim);
for(Stringpath:pathes)
ret.add(newFile(path));
}
returnret;
}
}
⑷ 如何查看jar文件中包含哪些类、方法
(1)用WinRAR打开
(2)找到想知道类和方法的class
(3)反编译 javap -c Class文件名
不能加class后缀
⑸ 怎么知道类在哪一个jar包中
用java -verbose YourApp来执行你的程序。然后底下的输出就会显示的。比如我有个程序PaintFrame在paint包里,我执行:
java -verbose paint.PaintFrame > out
然后看看out的内容(很长,但你可以自己随便搜一下了):
[Opened C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.Object from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.io.Serializable from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.Comparable from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.CharSequence from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.String from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.reflect.GenericDeclaration from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.reflect.Type from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.reflect.AnnotatedElement from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
[Loaded java.lang.Class from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
。。。
搜JFrame可以看到这么一行:
[Loaded javax.swing.JFrame from C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar]
你完全可以编个小程序提取出想要的所有东西。
⑹ 怎么知道一个类在哪个jar包中
是用eclipse么,直接ctrl+shift+t查找这个类,下面会显示类的路径,包括jar名
⑺ 怎么查找那个类在哪个jar包
myeclipse中有专门查看jar包源码的快捷键:
具体操作方法:选中类名,然后ctrl shift T,就可看到包含比类的包了。
JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。
⑻ java找不到jar包的类,不用eclipse纯手动编译怎么做
javac 编译时可以动态指定classpath路径使用-cp命令,将你的jar包加入到classpath路径中即可
⑼ 如何在目录中查找类位于哪个jar包中
使用反编译工具将jar包反编译,然后使用工具搜索。或者直接使用解压工具解压jar包,然后当作目录一个个找!