Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 EclipseIDE如何解析文件/资源位置?_Java_Eclipse_File_File Io_Resources - Fatal编程技术网

Java EclipseIDE如何解析文件/资源位置?

Java EclipseIDE如何解析文件/资源位置?,java,eclipse,file,file-io,resources,Java,Eclipse,File,File Io,Resources,我的问题是从这些方面提出的 两张图片 在第一种方法中,hibernate的configuration.configure()方法加载 src文件夹中的文件,如红色箭头所示 而在第二幅图中 显示了Log4j的PropertyConfigurator.configure()方法从 项目的根文件夹,如红色箭头所示 在这两个项目中,此设置和仅此设置都有效,没有备用设置有效 谢谢你的帮助。Eclipse什么都没做,全是JVM。如果使用命令行或其他IDE,结果将是相同的 在您的两个示例中,不同的程序以不

我的问题是从这些方面提出的

两张图片

在第一种方法中,hibernate的configuration.configure()方法加载

src文件夹中的文件,如红色箭头所示

而在第二幅图中

显示了Log4j的PropertyConfigurator.configure()方法从

项目的根文件夹,如红色箭头所示

在这两个项目中,此设置和仅此设置都有效,没有备用设置有效


谢谢你的帮助。

Eclipse什么都没做,全是JVM。如果使用命令行或其他IDE,结果将是相同的

在您的两个示例中,不同的程序以不同的方式加载配置

  • Hibernate将配置文件作为资源加载,该资源在类路径上查找具有该路径的文件,这就是为什么它可以位于
    src
  • Log4j使用该字符串作为打开
    FileInputStream
    的路径。由于您提供了一个相对路径,它将查找一个相对于项目根的文件

  • 加载hibernate.cfg.xml

    configuration.configure(hibernate.cfg.xml)
    表示您的hibernate配置文件“hibernate.cfg.xml”位于项目类路径的根目录下。即使您没有在configure()方法中传递配置文件名,它也可以工作,但在这种情况下,名称应该是hibernate.cfg.xml

    如果您想将此配置文件放到另一个目录中,则需要执行以下操作

    new Configuration().configure("/com/config/hibernate.cfg.xml")
    
    PropertyConfigurator.configure("classpath:com/config/log4j.properties"); 
    
    加载日志4j.属性

    加载log4j.properties也以类似的方式工作

    如果要将log4j.properties放入com-->配置源文件夹,可以执行以下操作

    new Configuration().configure("/com/config/hibernate.cfg.xml")
    
    PropertyConfigurator.configure("classpath:com/config/log4j.properties"); 
    

    Eclipse IDE解析文件/资源位置?真正地谢谢你的回答先生谢谢你的回答先生