Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web项目中的属性文件_Java_Jakarta Ee_Web_Properties - Fatal编程技术网

Java Web项目中的属性文件

Java Web项目中的属性文件,java,jakarta-ee,web,properties,Java,Jakarta Ee,Web,Properties,我将所有编程代码打包在一个jar文件中。我将把这个Jar文件放在我的动态web项目中,以执行Jar中的逻辑 但jar文件有一些逻辑,可以读取.properties文件来获取一些配置值 当我为逻辑运行web项目时,我得到一个错误java.io.FileNotFoundException:conf\conf.properties(系统找不到指定的路径) 任何解决此问题的建议请咨询 我也试过了 String propFileName = "conf/conf.properties"; File fil

我将所有编程代码打包在一个jar文件中。我将把这个Jar文件放在我的动态web项目中,以执行Jar中的逻辑

但jar文件有一些逻辑,可以读取.properties文件来获取一些配置值

当我为逻辑运行web项目时,我得到一个错误
java.io.FileNotFoundException:conf\conf.properties(系统找不到指定的路径)

任何解决此问题的建议请咨询

我也试过了

String propFileName = "conf/conf.properties";
File file = new File(propFileName);
Properties prop = new Properties();
FileInputStream fileInput = new FileInputStream(file);
prop.load(fileInput);

仅当且仅当您的文件可从调用类的
ClassLoader
访问,并且此处您直接在
WEB-INF
下拥有的内容不可访问时,基于的方法才会起作用,您应该在
WEB-INF/classes
中移动
conf/conf.properties
,并使用
/conf/conf.properties
作为资源名,使其从根目录而不是从调用类的包中获取文件。

要在servlet项目中读取属性文件WEB-INF文件夹,请执行以下操作

ServletContext.getResourceAsStream("WEB-INF/conf/conf.properties") 

我正在读一个类中的属性文件,这个类位于
myJar.jar
中,我没有提到另外一件事。我的jar有过滤器实现。在我的web项目中,我做了一个配置,它将根据URL模式调用这个过滤器。因此,在我的项目中,我没有看到任何
WEB-INF/classes
,请在最初的问题中澄清这一点。我不明白你为什么看不到
WEB-INF/classes
,因为它可以从webapp
ClassLoader
访问,其中包含
jar
文件在'WEB-INF/lib'和目录
WEB-INF/classes
中。。我只是一开始误解了你的评论。现在它成功了。。谢谢:)我只是好奇为什么我的第二种方法不起作用?因为我已经把属性文件也放在了一个jar中。当我用main方法在一个简单的java pgm中尝试它时,它已经工作了。如果你想知道用户目录是什么,只需执行这个
System.out.println(System.getProperty(“user.dir”)
String propFileName = "conf/conf.properties";
File file = new File(propFileName);
Properties prop = new Properties();
FileInputStream fileInput = new FileInputStream(file);
prop.load(fileInput);
ServletContext.getResourceAsStream("WEB-INF/conf/conf.properties")