
可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。
import javaioFile;
import javalangreflectMethod;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(SystemgetProperty("userdir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folderlistFiles();
for (int fileIndex = 0; fileIndex < fileslength; fileIndex++) {
File file = files[fileIndex];
if (fileisDirectory()) {
loop(file, packageName + filegetName() + "");
} else {
listMethodNames(filegetName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filenamesubstring(0, filenamelength() - 5);
Object obj = ClassforName(packageName + name);
Method[] methods = objgetClass()getDeclaredMethods();
Systemoutprintln(filename);
for (int i = 0; i < methodslength; i++) {
Systemoutprintln("\t" + methods[i]getName());
}
} catch (Exception e) {
Systemoutprintln("exception = " + egetLocalizedMessage());
}
}
}
进入jar文件其实没有说的那么困难,jar文件本质是一个zip格式的压缩文件,只是把文件后缀名改了,要用Java读取里面的文件也没有那么想象的那么困难。使用相关协议就可以:
例如:c盘根目录有一个testjar文件文件里面有个atxt文件我们就读取这个atxt文件
文件对应的URL:
jar:file:/C:/testjar!/atxt
Java代码:
import javaioIOException;
import javaioInputStream;
import javanetURL;
public class TestDouble {
public static void main(String[] args) throws IOException {
URL url=new URL("jar:file:/C:/testjar!/atxt");
Systemoutprintln(url);
InputStream is=urlopenStream();
byte b[]=new byte[1000];
isread(b);
Systemoutprintln(new String(b)trim());
}
}
不是很清楚你到底是从直接将jar中文件解压出来还是通过Java将jar文件中的文件复制出来,如果是想直接解压出文件用winrar就可以了,要用Java复制看下面这个测试,基本上和复制文件差不多:
import javaio;
import javanetURL;
public class CopyFile {
public static void copyFormJar(String fileUrl, String dest )
throws IOException
{
int BUFF_SIZE = 100000;
byte[] buffer = new byte[BUFF_SIZE];
InputStream in = null;
OutputStream out = null;
URL url=new URL(fileUrl);
try
{
in = urlopenStream();
out = new FileOutputStream( dest );
while ( true )
{
synchronized ( buffer )
{
int amountRead = inread( buffer );
if ( amountRead == -1 )
{
break;
}
outwrite( buffer, 0, amountRead );
}
}
}
finally
{
if ( in != null )
{
inclose();
}
if ( out != null )
{
outclose();
}
}
}
public static void main(String[] args) throws IOException {
args=new String[2];
args[0]="jar:file:/C:/testjar!/atxt";
args[1]="c:/testtxt";
CopyFilecopyFormJar(args[0], args[1]);
}
}
很简单啊 。。。你把jar包放在lib目录下之后 在WebRoot目录上面会生成一个
Referenced Libraries 你打开这个 进去看到的是SQLjdbcjar 这就是jar包 你再打开jar包 里面有一个commicrosoftsqlserverjdbc 打开这个 就能看见里面的文件了 就这样 呵呵 满意的话给个好评吧 谢啦啊
大部分java自带的类都在rtjar中,自己引入的jar里面的类的路径第二或第三个单词表示的是jar名,而最好的办法就是在Myeclipse或Eclipse等工具中点击这个类就可以清楚的看到在哪个jar下了。
以上就是关于java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名全部的内容,包括:java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名、怎样从JAR文件中读取文件、怎样才能在MyEclipse中看到导入进去的那些jar包中的类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)