0

原来的项目中,我有一个读取txt文件的JAVA文件,我把txt文件放在了这个项目的根目录下,一切正常。

FileInputStream in = new FileInputStream("properties.txt");

现在,我将这个项目导出为 jar,在新项目中,我使用这个 jar 作为外部库。问题来了:当我使用这个外部库文件时,我应该将 txt 文件放在这个新项目中的什么位置?

4

5 回答 5

1

如果您将此文件与项目一起提供并且不需要更改,则可以将其添加到您的 jar 并通过 ClassLoader 从那里加载它getResourceAsStream

this.getClass().getResourceAsStream("properties.txt");

(从技术上讲,当它进入 Java 类领域时,它不再是文件,而是资源)

于 2013-01-03T07:52:23.033 回答
1

在罐子里并使用类似的东西访问它

getClass().getClassLoader().getResourceAsStream("properties.txt")
于 2013-01-03T07:52:37.077 回答
0

该文件应位于类路径的根目录中。

于 2013-01-03T07:52:35.067 回答
0

Java 提供了许多设置类路径的机制,包括通过命令行、通过环境变量以及通过在可执行 Java jar 文件的 MANIFEST.MF 中进行设置。

这些都是很难管理的。了解技术并了解基础知识是很好的。但实际使用它们确实是个坏主意。

你应该做的是这个。

首先,将所有 Java 库放在系统上的一个位置。C:\java\libraries 或其他。您记得的某个地方,您的所有项目都可以访问的某个地方。

接下来,使用它们的版本号命名所有库。如果您使用 log4j v1.4.1,则将 jar 放在库区域的 log4j-1.4.1 目录中。这为您提供了“免费”的库版本控制。

最后,学习蚂蚁。对于简单的项目,Ant 很简单。使用 Ant build.xml 文件来编译、测试和运行您的应用程序。

为什么?几个原因。

因为一旦设置好后,向项目中添加新库就很简单了,您可以在 build.xml 中添加一行。Ant 让您可以更轻松地处理简单的抽象(例如所有库所在的位置)。

build.xml 是自包含的。例如,如果您为类路径使用环境变量,那么一个项目的类路径可能与另一个项目的类路径不同。这意味着重置环境变量。继续这个,你最终会因为你的类路径设置错误而对一些“以前有效”的“新问题”发誓。在 build.xml 中设置一次,然后忘记它。

蚂蚁是便携式的。它在 Windows、Linux、Mac、AS/400 上运行相同,它在 Java 运行的任何地方运行,与 shell 脚本或 BAT 文件不同。

它很轻。简单的蚂蚁脚本很简单。他们不会带很多行李,你总是可以让他们变得可怕复杂。对于构建而言,它比 Maven 简单得多。

大多数 IDE 直接支持 Ant。如果您决定回到 IDE,大多数人可以简单地使用具有最少配置的 ant 构建文件。

这就是使用 notepad++ 解决类路径问题的方法。设置类路径是可行的,但还远远不够,管理起来很痛苦。学习 Ant 的基础知识会让你用最少的工作走得更远。

于 2013-01-03T07:54:12.863 回答
0

将文件放入应用程序的“工作目录”,即启动应用程序的目录。

您应该有一些约定,例如“配置文件必须驻留在工作目录或工作目录/配置中”,并提供一种覆盖它的方法,例如使用系统属性,而不是您可以执行以下操作:

getClass().getClassLoader().getResourceAsStream(System.getProperty("configuration.file.path","properties.txt"))
于 2013-01-03T07:59:01.017 回答