在Java项目中,需要读取resource资源目录下的文件,以及遍历指定资源目录下的所有文件,并且在读取文件时保留文件相对路径。
『贰』 java 程序打包为jar发布后,读取配置文件路径出错 ,怎样获取配置文件路径
给你个例子,读取config.properties文件。
文件内容(值自己加)如下:
TestHosts =
FormalHosts =
TestConfig =
FormalConfig =
HostsPath =
ConfigPath =
读取文件的类如下:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.*;
public class EvnConfig{
public static Properties PROPERTIES = new Properties();
static{
String proFilePath = System.getProperty("user.dir")+"/config.properties";
//System.out.println(proFilePath);
//InputStream propertiesStream = EvnConfig.class.getClassLoader().getResourceAsStream(proFilePath);
InputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(proFilePath));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try{
PROPERTIES.load(in);
}catch(IOException e){
System.out.println("properties创建失败!");
e.printStackTrace();
}
//System.out.println("EvnConfig.testHosts:"+PROPERTIES.getProperty("TestHosts"));
}
public static final String testHosts = changeCode(PROPERTIES.getProperty("TestHosts"));
public static final String formalHosts = changeCode(PROPERTIES.getProperty("FormalHosts"));
public static final String testConfig = changeCode(PROPERTIES.getProperty("TestConfig"));
public static final String formalConfig = changeCode(PROPERTIES.getProperty("FormalConfig"));
public static final String hostsPath = changeCode(PROPERTIES.getProperty("HostsPath"));
public static final String configPath = changeCode(PROPERTIES.getProperty("ConfigPath"));
public static String changeCode(String str){
String toStr = "";
try {
//System.out.println(str + "转换...");
toStr = new String(str.getBytes("ISO-8859-1"),"GB2312");
//System.out.println(str + "转换成功!");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
System.out.println(str + "转换失败!");
e.printStackTrace();
}
return toStr;
}
}
『叁』 springboot打包为jar时怎么获取resource下的文件的路径
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
『肆』 Jar包找不到文件路径问题
将字体文件放在 java 程序 resources 资源文件下加载,Thread.currentThread().getContextClassLoader().getResource("").getPath() 这种方式可以正确获取字体文件路径。
但是 spring boot 打成 jar 包之后,以上方法就访问不到字体文件了,需要用流的方式访问:
『伍』 java jar包中图片路径读取问题
你是用eclipse写的吧,在eclipse中 src包不是一个文件夹,而是代表你的class文件存放的地址,在你这里,src代表的就回是Sys.jar!这答个文件夹,!的没有特殊意思,就只是这个文件夹名字的组成而已,命名规则中不能用“*”,“.”,“/”命名,!是可以用的
『陆』 获取当前的jar包路径以及如何读取jar包中
你没有说清楚。是另一个工程中的代码访问jar中的xml文件,还是jar本身的代码访问xml文件回。
如果是前者应该是答没有办法的。
如果是后者。
BufferedReader br = new BufferedReader(new InputStreamReader(
((YourClass.this.getClass().getResourceAsStream("1.xml")))));
String s;
while ((s = br.readLine()) != null)
System.out.println(s);
『柒』 Java如何获取当前的jar包路径以及如何读取j
举例:
把配置来文件ccc.xml放到编源译路径,如src/com.aaa.aa下面,然后再根据
String rootPath=Xxxx.class.getResource("/").getPath();
获取到编译的根路径,配置文件的地址就是rootPath+"com/aaa/aa/ccc.xml"
『捌』 一个Java项目部署到weblogic里,听说weblogic会把classes目录打成jar包,怎么获取classes里文件的路径
今天刚刚把这个问题解决了
我承认我自己2了一次
String jobPath = request.getSession().getServletContext().getRealPath("")+文件路径;
我一开始是这样拿的结果路径是这样的
file:///bea/user_projects/domains/域名/项目名/null/WEB-INF/classes/文件路径
weblogic将/WEB-INF/classes/放在一个临时文件夹下 每次发布都不一样 getRealPath("")只会简单的返回null 怎么办呢
Thread.currentThread().getContextClassLoader().getResource("/").getPath()+文件路径;
换成这个方法 我tomcat下面是没问题的 我本来以为没问题了
结果 2了
file:///bea/user_projects/domains/域名/项目名/servers/AdminServer/tmp/_WL_user/transfer/m8wwlo/war/WEB-INF/classes/WEB-INF/classes/
拿到了但为什么2个
我一看是不是2的 在文件路径里面加了一次/WEB-INF/classes/
一检查没有 文件路径下的配置中已经去掉了 /WEB-INF/classes/
这里为什么出现2个/WEB-INF/classes/
这个我也没想通 替换掉jobPath = jobPath.replace("/WEB-INF/classes/","");
好 tomcat跑不起来了 没办法 文件路径在加上/WEB-INF/classes/呗 搞定了
分享下 就当记日志了
这里千万注意 这里只是说讨论获取路径的方法
文件能不能取到我不知道 我的的文件还没拿到还在奋斗还在研究weblogic 哎
『玖』 jar包中的类读取配置文件的路径问题,求大家帮帮忙
应该是直接就可以读取的。
因为你的配置文件和Jar文件在同一个目录下,如果你的应用能找到jar文件,也就是可以找到配置文件。不过你要在classpath路径中添加*.properties。