方法1(返回绝对路径):
URL url = Thread.currentThread().getContextClassLoader().getResource(""font/simkai.ttf"");
String path = url.getPath();
方法2:
InputStream inputStream = JdbcUtil.class.getResourceAsStream("/jdbc.properties");
以上方法的意思是在classpath路径下查找jdbc.properties。如要打成一个jar包形式建议用这个方法获取资源文件, 如用方法1获取是会有问题的,因为方法1是获取的绝对路径,运行java -jar test.jar后获取的路径会是 d:/test.jar!/jdbc.properties这种样子,导致路径不正确,多了个叹号,在Eclipse下运行正常。
示例1:加载properties文件
Properties properties = new Properties();
InputStream inputStream = JdbcUtil.class.getResourceAsStream("/jdbc.properties");
try {
properties.load(inputStream);
} catch (FileNotFoundException e1) {
log.error(e1.getMessage(), e1);
} catch (IOException e1) {
log.error(e1.getMessage(), e1);
} finally {
try {
inputStream.close();
} catch (IOException e) {
log.error(e);
}
}
driver = properties.getProperty("jdbc.driver");
url = properties.getProperty("jdbc.url");
username = properties.getProperty("jdbc.username");
password = properties.getProperty("jdbc.password");
示例2:加载xml文件
InputStream in = GenerateBaseDataServiceImpl.class.getResourceAsStream("/tableInfo.xml");
try {
SAXReader reader = new SAXReader();
Document doc = reader.read(in);
Element root = doc.getRootElement();
Iterator<?> iterator = root.elementIterator("baseData");
Element subElement;
String tableSchema;
String tableName;
String sqlStatement;
TableInfo tableInfo = null;
while (iterator.hasNext()) {
subElement = (Element) iterator.next();
tableSchema = subElement.attribute("tableSchema").getText();
tableName = subElement.attribute("tableName").getText();
Attribute sqlStatementAttribute = subElement.attribute("sqlStatement");
tableInfo = new TableInfo();
if (sqlStatementAttribute != null) {
sqlStatement = sqlStatementAttribute.getText();
tableInfo.setSqlStatement(sqlStatement);
}
tableInfo.setTableSchema(tableSchema);
tableInfo.setTableName(tableName);
tableInfoList.add(tableInfo);
}
} catch (DocumentException e) {
log.error("读取基础数据的xml出错", e);
} finally {
try {
in.close();
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
方法3:在web工程下获取WEB-INF路径
Constants.WEB_INF_PATH = servletContext.getRealPath("WEB-INF");
分享到:
相关推荐
主要介绍了Java 中获取类路径 classpath 的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
下面小编就为大家带来一篇Java中获取类路径classpath的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章是对获取JAVA路径,包括CLASSPATH外的路径的方法进行了详细的分析介绍,需要的朋友参考下
java实现 获取指定路径下 指定格式 的所有文件
java project和java web project项目中如何获得相对路径、绝对路径问题详解
文中指出尽量不要使用相对于System.getProperty(\\\"user....使用上面 ClassLoaderUtil类的public static URL getExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。
主要介绍了浅谈web项目读取classpath路径下面的文件,具有一定借鉴价值,需要的朋友可以参考下
The archive: referenced by the classpath, does not exist.
获取当前执行的classpath的所有jar包的路径 * 3.通过java的ToolProvider创建JavaCompile,用来执行class源文件 * 4.创建DiagnosticCollector用来执行获取执行失败的错误结果 * 5.添加动态执行的编译环境 options ...
类路径资源管理器是一个Ant任务,它使您可以在正在使用的库中查找重复的资源。 它还提供了一组API,用于查找档案以及所使用类的档案位置。 检查主页部分以获取信息。
//该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...
根据用户选择的数字获取对应的JDK版本路径。 将该路径设置为JAVA_HOME环境变量,并使用setx命令使其永久生效。 显示切换结果: 显示成功切换JAVA_HOME环境变量至所选JDK版本的信息。 退出操作: 用户按任意键后...
类路径生成器该节点的库有助于构建Java-Classpath。 样例代码: var classpathBuilder = require ( './classpathBuilder.js' ) ;classpathBuilder . build ( '<Directory>' , function ( classpath ) {console . log...
加载文件资源的三种方式 ~1.从classpath根目录下加载指定名称的文件 2.从classpath根目录下加载指定名称的文件 3. 从classpath根目录下加载指定名称的文件 4. 获取当前文件的绝对路径
它负责将 用户类路径(java -classpath或-Djava.class.path变量所指的目录, 即当前类所在路径及其引用的第三方类库的路径,如第四节中的问题6所述)下的类库 加载到内存中。 开发者可以直接使用系统...
java环境变量设置,环境变量是操作系统提供的一种机制,用于存储和获取关键信息以方便应用程序和用户。在Java开发中,我们经常需要配置一些环境变量来指定Java运行时的一些参数。 JAVA_HOME:Java安装目录,用于指定Java...
lass.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其实也是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
从classPath获取文件系统中的绝对路径 将资源从类路径复制到文件系统 UnicodeInputStream 一个适用于unicode文件的InputStream包装器。 提供此工具是因为某些Unicode文件具有BOM表头,但是java base io读取BOM作为...
通过虚拟目录获取文件资源 VirtualFile testFile = home.getChild("test.txt"); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resolver....
概念:面向切面编程,在不改变源码的情况下对方法进行增强,抽取横切关注点(日志处理,事务管理,安全检查,性能测试等等),使用AOP进行增强,使程序员只需要关注与业务逻辑编写. 专业术语 目标Target:需要增强的类 ...