Java 如何从其他项目中存在的类文件中获取inputstream

Java 如何从其他项目中存在的类文件中获取inputstream,java,inputstream,aop,javassist,getresource,Java,Inputstream,Aop,Javassist,Getresource,我正在尝试从另一个项目的类文件中获取inputstream 我正在使用eclipse。输出文件夹为: mycurrentproject/WebContent/WEB-INF/classes 导出库文件夹为: mycurrentproject/WebContent/WEB-INF/lib 当我打印“java.class.path”时,我得到了: D:\apache-tomcat-7.0.42\bin\bootstrap.jar;D:\apache-tomcat-7.0.42\bin\tomcat-

我正在尝试从另一个项目的类文件中获取inputstream

我正在使用eclipse。输出文件夹为:

mycurrentproject/WebContent/WEB-INF/classes

导出库文件夹为:

mycurrentproject/WebContent/WEB-INF/lib

当我打印“java.class.path”时,我得到了:

D:\apache-tomcat-7.0.42\bin\bootstrap.jar;D:\apache-tomcat-7.0.42\bin\tomcat-juli.jar

WINDOWS系统类路径的My环境变量为:

,%JAVA\u HOME%\lib\dt.jar;%JAVA\u HOME%\lib\tools.jar;D:\work\workspace\myjar

获取资源流的包
action
中的我的代码是:

classfilePath = "/cc/Person.class";
InputStream isInputStream = ModifyMethodTest.class.getResourceAsStream(classfilePath);
action
在“mycurrentproject/WebContent/WEB-INF/classes”中输出
action.jar
在“mycurrentproject/WebContent/WEB-INF/lib”中导出

当“mycurrentproject/WebContent/WEB-INF/classes”中的
cc/Person.class
时,我得到了正确的结果。当“mycurrentproject/WebContent/WEB-INF/lib”或“D:\work\workspace\myjar”中的
cc/Person.class
时<代码>isInputStream
获取空值。我想在另一个项目中从类文件中获取inputstream。类文件可能位于文件夹中,也可能位于目标项目文件夹中的jar文件中。该项目中应该有许多类或jar文件。怎么做?现在,为了简单起见,我按照上面的方法测试我的想法,将
cc/Person.class
放在“D:\work\workspace\myjar”中。但它也失败了。有没有人有类似的经验或建议?谢谢

编辑:

classfilePath ="file:D:/work/workspace/myjar/cc/Person.class"; 
URL[] urls = new URL[] { new URL(classfilePath) }; 
URLClassLoader ucl = new URLClassLoader(urls); 
InputStream isInputStream = ucl.getResourceAsStream(classfilePath);
此处isInputStream仍然为空。getResourceAsStream()的参数是
字符串名
。可能是什么?比如说相对路径?有推荐人吗

EDIT2:

classfilePath ="file:D:/work/workspace/myjar/cc/Person.class"; 
URL[] urls = new URL[] { new URL(classfilePath) }; 
URLClassLoader ucl = new URLClassLoader(urls); 
InputStream isInputStream = ucl.getResourceAsStream(classfilePath);
它的工作代码如下:

String Path1 = "file:D:/";
String Path2 = "work/workspace/myjar/cc/Person.class";

URL[] urls = new URL[] { new URL(Path1) }; 
URLClassLoader ucl = new URLClassLoader(urls); 
InputStream isInputStream = ucl.getResourceAsStream(Path2);

使用
URLClassLoader
。建立后,请致电:

getResourceAsStream("/work/workspace/myjar/cc/Person.class")

对于
InputStream

使用
URLClassLoader
。建立后,请致电:

getResourceAsStream("/work/workspace/myjar/cc/Person.class")

对于
InputStream

classfilePath=“file:D:/work/workspace/myjar/cc/Person.class”;URL[]URL=newurl[]{newurl(classfilePath)};URLClassLoader ucl=新的URLClassLoader(URL);InputStream isInputStream=ucl.getResourceAsStream(类文件路径)不工作。我已编辑了我的问题。它与EDIT2中的代码一起工作。我只是不知道为什么。是的,你有关于这个案件的原因的任何参考资料吗?好的,谢谢你的时间。
classfilePath=“file:D:/work/workspace/myjar/cc/Person.class”;URL[]URL=newurl[]{newurl(classfilePath)};URLClassLoader ucl=新的URLClassLoader(URL);InputStream isInputStream=ucl.getResourceAsStream(类文件路径)不工作。我已编辑了我的问题。它与EDIT2中的代码一起工作。我只是不知道为什么。是的,关于这个案子的原因,你有任何证明吗?好的,谢谢你抽出时间。