Java 如何从其他项目中存在的类文件中获取inputstream
我正在尝试从另一个项目的类文件中获取inputstream 我正在使用eclipse。输出文件夹为: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-
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中的代码一起工作。我只是不知道为什么。是的,关于这个案子的原因,你有任何证明吗?好的,谢谢你抽出时间。