第一种:
File f = new File(thisgetClass()getResource("/")getPath());
Systemoutprintln(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“/”
File f = new File(thisgetClass()getResource("")getPath());
Systemoutprintln(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test
获取当前类的绝对路径;
第二种:
File directory = new File("");//参数为空
String courseFile = directorygetCanonicalPath() ;
Systemoutprintln(courseFile);
结果:
C:\Documents and Settings\Administrator\workspace\projectName
获取当前类的所在工程路径;
第三种:
URL xmlpath = thisgetClass()getClassLoader()getResource("selectedtxt");
Systemoutprintln(xmlpath);
结果:
file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selectedtxt
第四种:
Systemoutprintln(SystemgetProperty("userdir"));
结果:
C:\Documents and Settings\Administrator\workspace\projectName
获取当前工程路径
第五种:
Systemoutprintln( SystemgetProperty("javaclasspath"));
结果:
C:\Documents and Settings\Administrator\workspace\projectName\bin
获取当前工程路径
PthisBackgroundImage = (Image)Resourcesskin名
这种方法不行,resources中不支持下面的文件夹直接读取,
PropertiesResources名 这样是允许的
否则的话,可以用这种方法(只是其中一种)
SystemReflectionAssembly asm = SystemReflectionAssemblyGetExecutingAssembly();
Stream resource = asmGetManifestResourceStream(路径);
thisBackgroundImage=BitmapFromStream(resource);
thisgetClass()getResource是得到当前对象对应的类文件(class)所在的目录下的文件。所以通过thisgetClass()getResource去获得C盘中的数据是获取不到的。
像C:\\loginwav这样的绝对路劲,你可以这样来获取:
URL url = new File("C:\\loginwav")toURI()toURL();
补充:
这个要看你的Pan这个类编译成的class文件在什么地方。thisgetClass()getResource()是相对于Panclass这个类文件的文件来说的,如果loginwav和Panclass同一目录下,那么thisgetClass()getResource("loginwav")就能获取到,如果loginwav是在Panclass的下一级目录music下,那么就是
thisgetClass()getResource("music/loginwav")了。
像这样的根据ClassLoader来获取资源的方式,应该不能查找上一级目录。如:
thisgetClass()getResource("/aa");这样好像是不行的。所以如果要取相对路径,那么要么就把loginwav和Panclass文件放在同一目录,要么就把loginwav放在Panclass的下一级目录。
如果还有什么不清楚,可以再说出来。我再补充。
在目前的微服务和容器部署的SpringBoot坏境下,我们一般将项目直接打成 jar包的方式运行(java -jar ),我们可能需要读取resources目录下的自定义文件,想在程序运行时找到该目录,并读取需要的文件。
当时我使用 SystemgetProperty("userdir") 获取工作目录的坑,本地idea工具运行没问题,但是一但打成jar包,路径会变成jar包所在的目录,无法读取jar内部的文件, 不建议用这种方式 。
由于jar中的文件都属于资源的一种,所以获取需从类加载器进行获取。正确的姿势是采用 thisgetClass()getClassLoader()getResourceAsStream() 的方式。
读取自定义文件时,由于getResourceAsStream方法返回的是一个InputStream流,采用InputStreamReader这种方式 最好指定一种编码方式 ,不然可能 中文乱码 !(我在解析xml时中文乱码)
从getResource()中是可以获取resource中的对象的,比如的Bitmap对象,定义dimen的数值等。
而Rdimen或Rmipmap等仅仅是获取了资源id,接下来还需要经过getDrawbleResource()这类方法底层去创建对象和或许数值的。
方法有
dim strExe as string=程序文件所在的完整路径(Filename)
processstart(strExe,"默认程序可以不写")
processstart("C:\qqexe")
以上就是关于java中获取工程中res目录路径的方法全部的内容,包括:java中获取工程中res目录路径的方法、c# winform 下 Resources下面有个子文件夹skin怎么读取里面的图片、JAVA中获取资源问题 this.getClass().getResource("C:\\login.wav");等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)