⑴ 怎麼引用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包,然後當作目錄一個個找!