㈠ java properties 路径总是找不到
1.方法一InputStream fis =TestProperties.class.getClassLoader().getResourceAsStream("init.properties")2.方法二(要求TestProperties和init.properties在同一目录下)InputStream fis =TestProperties.class.getResourceAsStream("init.properties")3.方法三,对于Web工程也可以这样。先获取ServletContext,然后InputStream in=context.getResourceAsStream("/WEB-INF/classes/init.properties");
㈡ java读取properties配置文件路径问题
可以直接通过Thread方法直接获取到项目路径下的配置文件: static { InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("BankConPort.properties"); //加载线程文件成为流 Properties prop = new Properties(); try { prop.load(is);//直接转换为对象 BOB_ReqURI = prop.getProperty("BOB_ReqURI"); BOB_SignURI = prop.getProperty("BOB_SignURI"); BOBLOGINPASSWORD = prop.getProperty("BOBLOGINPASSWORD"); } catch (IOException ex) { java.util.logging.Logger.getLogger(BOBUtil.class.getName()).log(Level.SEVERE, null, ex); } finally { if (is != null) { try { is.close(); } catch (IOException e) { Log.info("解析信息出错", e.getMessage()); } } } }
㈢ java中properties路径问题
Name.properties 放到classes下面,也就是 classpath下然后prop.load(Tester.class.getClassLoader().getResourceAsStream("/Name.properties"));加个 “/”
㈣ 在java中如何读取properties文件
使用java.util.Properties1、创建一个Properties对象。2、使用对象的load方法加载你的property文件。3、使用getProperty方法取值回。例子:package com.bill.test;import java.io.FileInputStream;import java.util.Properties;public class Test {public static void main(String[] args) throws Exception{答Properties property = new Properties();property.load(new FileInputStream("你的文件位置"));String value = property.getProperty("你的属性的key");//TODO 使用value…}}
㈤ JAVA中如何读取src下所有的properties文件
最常用读取properties文件的方法InputStream in = getClass().getResourceAsStream("资源Name");这种方式要求properties文件和当前类在同一文件夹下面。如果在不同的包中,必须使用:InputStream ins = this.getClass().getResourceAsStream("/cn/zhao/properties/testPropertiesPath2.properties");Java中获取路径方法获取路径的一个简单实现反射方式获取properties文件的三种方式1 反射方式获取properties文件最常用方法以及思考:Java读取properties文件的方法比较多,网上最多的文章是"Java读取properties文件的六种方法",但在Java应用中,最常用还是通过java.lang.Class类的getResourceAsStream(String name) 方法来实现,但众多读取properties文件的代码中,都会这么做:InputStream in = getClass().getResourceAsStream("资源Name");这里面有个问题,就是getClass()调用的时候默认省略了this,this是不能在static(静态)方法或者static块中使用的,原因是static类型的方法或者代码块是属于类本身的,不属于某个对象,而this本身就代表当前对象,而静态方法或者块调用的时候是不用初始化对象的。问题是:假如不想让某个类有对象,那么会将此类的默认构造方法设为私有,当然也不会写别的共有的构造方法。并且我这个类是工具类,都是静态的方法和变量,要在静态块或者静态方法中获取properties文件,这个方法就行不通了。其实这个类就不是这么用的,他仅仅是需要获取一个Class对象就可以了,那就容易了,取所有类的父类Object,用Object.class比用正在写类自身方便安全,下面给出一个例子,以方便交流。 import java.util.Properties; import java.io.InputStream; import java.io.IOException; /** * 读取Properties文件的例子 * File: TestProperties.java * User: leimin * Date: 2008-2-15 18:38:40 */ public final class TestProperties { private static String param1; private static String param2; static { Properties prop = new Properties(); InputStream in = Object. class .getResourceAsStream( "/test.properties" ); try { prop.load(in); param1 = prop.getProperty( "initYears1" ).trim(); param2 = prop.getProperty( "initYears2" ).trim(); } catch (IOException e) { e.printStackTrace(); } } /** * 私有构造方法,不需要创建对象 */ private TestProperties() { } public static String getParam1() { return param1; } public static String getParam2() { return param2; } public static void main(String args[]){ System.out.println(getParam1()); System.out.println(getParam2()); } } 运行结果: 151 152 当然,把Object.class换成int.class也行。另外,如果是static方法或块中读取Properties文件,还有一种最保险的方法,就是这个类的本身名字来直接获取Class对象,比如本例中可写成TestProperties.class,这样做是最保险的方法。2 获取路径的方式:File fileB = new File( this .getClass().getResource( "" ).getPath()); System. out .println( "fileB path: " + fileB); 2.2获取当前类所在的工程名:System. out .println("user.dir path: " + System. getProperty ("user.dir"))<span style="background-color: white;">3 获取路径的一个简单的Java实现</span> /** *获取项目的相对路径下文件的绝对路径 * * @param parentDir *目标文件的父目录,例如说,工程的目录下,有lib与bin和conf目录,那么程序运行于lib or * bin,那么需要的配置文件却是conf里面,则需要找到该配置文件的绝对路径 * @param fileName *文件名 * @return一个绝对路径 */ public static String getPath(String parentDir, String fileName) { String path = null; String userdir = System.getProperty("user.dir"); String userdirName = new File(userdir).getName(); if (userdirName.equalsIgnoreCase("lib") || userdirName.equalsIgnoreCase("bin")) { File newf = new File(userdir); File newp = new File(newf.getParent()); if (fileName.trim().equals("")) { path = newp.getPath() + File.separator + parentDir; } else { path = newp.getPath() + File.separator + parentDir + File.separator + fileName; } } else { if (fileName.trim().equals("")) { path = userdir + File.separator + parentDir; } else { path = userdir + File.separator + parentDir + File.separator + fileName; } } return path; } 4 利用反射的方式获取路径:InputStream ips1 = Enumeration . class .getClassLoader() .getResourceAsStream( "cn/zhao/enumStudy/testPropertiesPath1.properties" ); InputStream ips2 = Enumeration . class .getResourceAsStream( "testPropertiesPath1.properties" ); InputStream ips3 = Enumeration . class .getResourceAsStream( "properties/testPropertiesPath2.properties" );
㈥ java中的properties文件放在哪
随便放在哪里,只要路径写对就可以;比如你直接放到src下prop.load(new FileInputStream( "database.properties "));如果放到你的包里内就要写出容包的路径:prop.load(new FileInputStream( "../myPackage/database.properties ")); 技术问题可以去itjob技术交流群探讨
㈦ java web应用程序的properties文件路径
这个问题就得看你的配置文件放在哪里啦,如果放在了项目的Classes目录(或子目录)下,你可以用**.Class.getResource('相对路径')来获取配置文件路径.如果是其他目录,那你只能在项目启动时通过ServletContext获取项目根目录+配置文件的目录来确定路径.并把路径放到类文件可以引用的地方啦.以下是我在做项目时写的一个用于获取路径的类,写的可能不太好.但还是希望能对你有所帮助:package com.example.web;import java.io.File;import java.net.URL;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;/** * 路径获取类 * */public class WebPath { /** * 获取项目根目录的绝对路径 * * @return 如:F:\TongJianpeng\J2EEUtil * */ public static String getAbsolutePathWithProject() { return System.getProperty("user.dir"); } /** * 获取项目所在盘符 * */ public static String getDriverPathWithProject() { return new File("/").getAbsolutePath(); } /** * 获取项目根目录的绝对路径 * * @return 项目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\ * */ public static String getAbsolutePathWithWebProject( HttpServletRequest request) { return request.getSession().getServletContext().getRealPath("/"); } /** * 获取项目根目录下的指定目录的绝对路径 * * @param 项目根目下的指定目录 * .例如:/login/ * @return 项目根目下的指定目录.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\ * */ public static String getAbsolutePathWithWebProject( HttpServletRequest request, String path) { return request.getSession().getServletContext().getRealPath(path); } /** * 获取项目根目录的绝对路径 * * @return 项目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\ * */ public static String getAbsolutePathWithWebProject(ServletContext context) { return context.getRealPath("/"); } /** * 获取项目根目录下的指定目录的绝对路径 * * @param 项目根目下的指定目录 * .例如:/login/ * @return 项目根目下的指定目录.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\ * */ public static String getAbsolutePathWithWebProject(ServletContext context, String path) { return context.getRealPath(path); } /** * 获取项目classpath目录的绝对路径 * * @return classes目录的绝对路径<br/> * file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/ * */ public static URL getAbsolutePathWithClass() { return WebPath.class.getResource("/"); } /** * 获取项目classPath目录下的指定目录的绝对路径 * * @param path * classes目录下的指定目录.比如:/com/ * @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/ * */ public static URL getAbsolutePathWithClass(String path) { return WebPath.class.getResource(path); } /** * 获取指定类文件的所在目录的绝对路径 * * @param clazz * 类 * @return 类文件的绝对路径.例如:<br/> 包com.Aries.Util.Web下的Main.java类.<br/> * 路径为:file:/ * F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/ * */ public static URL getAbsolutePathWithClass(Class clazz) { return clazz.getResource(""); }}
㈧ java中如何取得properties文件的路径
首先你为什么要重命名src,这个是放源码的包,另外你之所以取不到是因为你当前路径(classpath)下没有src啊,src是上一层,你肯定找不到,
㈨ 你的那个java读取properties文件的,路径问题解决了吗,可以读到不在src目录下的的.properties文件了吗
可以写绝对路径;或者把运行脚本与.properties文件放到同一个路径下。
㈩ java web工程中读取properties文件,路径一直不知道怎么写
1. 使用java.lang.Class类的getResourceAsStream(String name)方法
InputStreamin=getClass().getResourceAsStream("/config.properties");
在静态方法中,由于不能使用getClass()方法,必须写出类的名字。区别不大。
MyClass.class.getResourceAsStream("/config.properties");
使用这个方法,路径前面可以加斜杠也可以不加。根据Class类getResourceAsStream()方法的JavaDoc:
Finds a resource with a given name. The rules for searching resources associated with a given class are implemented by the defining class loader of the class. This method delegates to this object's class loader. If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResourceAsStream.
Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:
If the name begins with a '/' ('u002f'), then the absolute name of the resource is the portion of the name following the '/'.
Otherwise, the absolute name is of the following form:
modified_package_name/name
Where the modified_package_name is the package name of this object with '/' substituted for '.' ('u002e').
就是说,这个path假如以斜杠开头,则斜杠后面的部分是文件相对classpath的路径;假如不是,Java会把这个path看作是“包名/文件名”的结构,会尝试在这个类的包里面去找,而不是从classpath开始找;在这种情况下,除非你把properties文件放到MyClass.class所属的包里面,不然都会是null的。
2. 使用java.lang.ClassLoader类的getResourceAsStream(String name)方法
路径是不能加斜杠的!非常重要。
MyClass.class.getClassLoader().getResourceAsStream("config.properties");
这是因为使用classloader进行读取,所输入的参数必须是一个相对classpath的绝对路径,在格式上,一个绝对路径是不能以'/'开头的。
注意这两个方法是同名的,但路径参数的格式截然不同。
3. 在Maven中的运用
现在几乎所有的web project都是maven project,Maven的默认设置是把
src/main/resources/
加入到classpath里面的。那么,最好的做法是把你的properties文件放进src/main/resources里面,然后用上面代码读取。用Class类的,一般要加斜杠;用ClassLoader类的,绝不能加斜杠!
假如是Eclipse里面,需要把这个src/main/resources加到classpath里面。具体操作是右击工程,选择“Configure buildpath”,根据Maven的要求,把src/main/java和src/main/resources都加进去,并且保证Exclude是none,Include是all,或者至少要包括你需要读取的文件。
未经允许不得转载:山九号 » javaproperties文件路径|java中的properties文件放在哪