Java 在单个文件夹中包含属性文件和Jar文件

Java 在单个文件夹中包含属性文件和Jar文件,java,eclipse,helios,Java,Eclipse,Helios,我正在Eclipse Helios中创建一个java应用程序。我创建了一个类,在该类中,我需要从包含解决方案的文件夹中添加的.properties文件中获取数据。通过此代码,当我尝试在Eclipse中运行.properties文件时,我可以访问该文件中的值 代码是: Properties prop = new Properties(); prop.load(new FileInputStream("config.properties")); _url = prop.getProperty("ur

我正在Eclipse Helios中创建一个java应用程序。我创建了一个类,在该类中,我需要从包含解决方案的文件夹中添加的.properties文件中获取数据。通过此代码,当我尝试在Eclipse中运行.properties文件时,我可以访问该文件中的值

代码是:

Properties prop = new Properties();
prop.load(new FileInputStream("config.properties"));
_url = prop.getProperty("url");
通过这段代码,我得到了Url的正确值

在这之后,我为我的项目创建了一个可执行的jar。当我尝试使用命令行执行jar时,我得到了一个FileNotFoundException,这意味着jar无法定位.properties文件

我将.properties文件保存在与Jar文件相同的文件夹中,因为我们提供了编辑.properties文件的功能

由于我开始使用Java只工作了4天,所以我无法确定将.properties文件放置在何处以及如何访问它


请提供帮助。

您需要请求类加载器获取资源。 看

对于jar,请尝试使用:

prop.load(getClass().getClassLoader().getResourceAsStream("config.properties"));
如果从静态上下文调用,请使用:

prop.load(YourClassName.class.getClassLoader().getResourceAsStream("config.properties"));

这给了我getClassLoader中的错误,说明无法解析为类型或字段,我无法理解,但它仍然表示getClassLoader()方法未定义,我必须创建一个具有此名称或其他名称的方法吗?感谢回复,我将行改为:prop.load(FinalJavaScreenShare.class.getClassLoader().getResource(“config.properties”);现在它为load显示wrror,即类型属性中的方法load(Reader)不适用于参数(URL)+1。请注意,这里显示的类装入器技术与应用程序运行时类路径上的资源有关。该类路径通常包括JAR,但不包括相同目录中的松散资源。Jar中的资源是一个&看起来这个应该是一个嵌入式资源。请参阅,以获取返回
URL
的类加载器方法的变体-但请注意,无法将
URL
转换为有效的文件实例。这里的类加载器是什么?AClasssFromYourJar.class.getClassLoader()完成了您所说的操作。但是,它现在给出的错误是这样的,即方法加载(Reader)在中,类型属性不适用于参数(URL)
prop.load(YourClassName.class.getClassLoader().getResourceAsStream("config.properties"));