java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名

java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名,第1张

可以使用以下代码来获取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包中的类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9700666.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存