【问题标题】:Problem locating a file in a jar file在 jar 文件中定位文件时出现问题
【发布时间】:2011-11-06 03:08:54
【问题描述】:

我是 Apache Ant 新手,我创建了一个 Java 应用程序,其中包含许多文件,其中包含一个 sys.properties 文件。该文件的位置在根目录中,为了被称为​​字符串“sys.properties”,代码中用于定位该文件。它工作得很好。

现在我已经用 Apache Ant 创建了一个构建文件,它从应用程序中创建了一个 jar 文件。在我使用的代码中

<filelist dir="${basedir}" files="sys.properties"/>

当这个 jar 文件被创建时,它确实将新文件放在了 jar 文件的根目录中。

当我通过命令行运行时:

java -classpath C:\tmp\APP;doddle.jar; doddle.home.start

jar 应用程序似乎在寻找 sys.properties,但找不到(doddle.home.start 类调用 sys.properties)。

知道问题出在哪里吗?提前致谢!

【问题讨论】:

标签: java apache ant jar


【解决方案1】:

您应该提供有关您尝试如何引用该文件的更多信息。你用什么路径?如果您尝试打开“sys.properties”,您可以尝试引用“/sys.properties”,这应该会从 jar 文件的根目录打开文件。

【讨论】:

    【解决方案2】:

    问题是sys.properties 不再是一个文件,它是一个jar 条目。

    您可以通过SomeClass.class.getResourceAsStream("/sys.properties")InputStream 的身份访问它(有关如何处理流,请参阅the I/O tutorial

    【讨论】:

    • 所以我应该将 sys.properties 从 jar 中取出并在通过命令行调用它时引用它? IE。 java -classpath C:\tmp\APP;doddle.jar;sys.properties doddle.home.start
    猜你喜欢
    • 2010-09-23
    • 2012-12-26
    • 1970-01-01
    • 2015-11-23
    • 2010-10-30
    • 2023-03-07
    • 1970-01-01
    • 2021-11-28
    • 2021-03-20
    相关资源
    最近更新 更多