ZKX's LAB

如何调用第三方jar包的资源文件 jar包资源文件

2020-10-05知识9

jar包内读取资源文件:Java代码源代码1:package edu.hxraid;import java.io.*;public class Resource {public void getResource()throws IOException{File file=new File(\"bin/resource/res.txt\");BufferedReader br=new BufferedReader(new FileReader(file));String s=\";while((s=br.readLine())。null)System.out.println(s);}}这段代码写在Eclipse建立的java Project中,其目录为:(其中将资源文件res.txt放在了bin目录下,以便打成jar包)1、src/src/edu/hxraid/Resource.java2、bin/bin/resource/res.txtbin/edu/hxraid/Resource.class很显然运行源代码1是能够找到资源文件res.txt。但当我们把整个工程打成jar包以后(ResourceJar.jar),这个jar包内的目录为:edu/hxraid/Resource.classresource/res.txt而这时jar包中Resource.class字节码:ldc[20]将无法定位到jar包中的res.txt位置上。就算把bin/目录去掉:ldc[20]仍然无法定位到jar包中res.txt上。这主要是因为jar包是一个单独的文件而非文件夹,绝对不可能通过\"file:/e:/./ResourceJar.jar/resource/res.txt\"这种形式的文件URL来定位res.txt。所以即使是相对路径,也无法定位到jar文件内的。

如何调用第三方jar包的资源文件 jar包资源文件

android 怎么把源码中的资源文件编译进jar包

如何调用第三方jar包的资源文件 jar包资源文件

如果调用第三方jar包的资源文件,在制作jar包和告诉别人如何调用你的jar包时经常用到。通常有两种方法,具 1)在应用程序端访问第三方jar包里面的raw文件,方法如下:InputStream is=org.hisense.facerecog.R.class.getResourceAsStream(\"data.xml\");File cascadeDir=this.getDir(\"cas\",Context.MODE_PRIVATE);mCascadeFile=new File(casDir,\"data.xml\");FileOutputStream os=new FileOutputStream(mCascadeFile);其中org.hisense.facerecog.R为jar包中资源文件R.java的路径,this为当前应用程序环境。2)在第三方jar包中直接访问其资源文件,将其拷贝到应用程序端,需要给出应用程序环境:Context context方法如下:InputStream is=this.getClass().getResourceAsStream(\"/res/raw/data.xml\");File cascadeDir=context.getDir(\"cas\",Context.MODE_PRIVATE);mCascadeFile=new File(casDir,\"data.xml\");FileOutputStream os=new FileOutputStream(mCascadeFile);其中this为第三方jar中的类运行环境,context为应用程序环境。

如何调用第三方jar包的资源文件 jar包资源文件

我用eclipse打得jar包怎么运行时找不到资源文件 你的这个问题 我正好遇到过 请参考我的blog http://zhangcong170.iteye.com/blog/850544主要是打包成jar后,jar格式的文件和普通的文件夹的路径是不一样的 所以你会找不到资源文件

java获取jar包中资源文件

如何调用第三方jar包的资源文件 如果调用第三方jar包的资源文件,在制作jar包和告诉别人如何调用你的jar包时经常用到。通常有两种方法,具体如下:1)在应用程序端访问第三方jar包里面的raw文件,方法如下:InputStreamis=org.hisense.facerecog.R.class.getResourceAsStream(\"data.xml\");File cascadeDir=this.getDir(\"cas\",Context.MODE_PRIVATE);mCascadeFile=new File(casDir,data.xml\");FileOutputStream os=newFileOutputStream(mCascadeFile);其中org.hisense.facerecog.R为jar包中资源文件R.java的路径,this为当前应用程序环境。2)在第三方jar包中直接访问其资源文件,将其拷贝到应用程序端,需要给出应用程序环境:Contextcontext方法如下:InputStream is=this.getClass().getResourceAsStream(\"/res/raw/data.xml\");File cascadeDir=context.getDir(\"cas\",Context.MODE_PRIVATE);mCascadeFile=new File(casDir,data.xml\");FileOutputStream os=newFileOutputStream(mCascadeFile);其中this为第三方jar中的类运行环境,context为应用程序环境。两中方法最后都会在应用程序根目录下生成cas/data.xml文件,对应于第三方jar包中的/res/raw/data.txt文件

如何将资源文件打包到Jar包中 最好名为为*.properties这样,就当成一般的java资源,一起打包了

如何在jar包中获取资源文件对象

如何调用第三方jar包的资源文件? 直接把你的外部jar加载到systemclassloader试试看可以通过反射的方式实现for exampleURLClassLoader loader=(URLClassLoader)ClassLoader.getSystemClassLoader();Method method=URLClassLoader.class.getDeclaredMethod(\"addURL\",new Class[]{ URL.class });反射获取方法method.setAccessible(true);File jar=new File(yourjarpath);外部jar路径URL url=jar.toURI().toURL();method.invoke(loader,new Object[]{url});加载jar到systemclassloader

#context

随机阅读

qrcode
访问手机版