java - java中路径名前导反斜杠

标签 java ant path apache-commons

因此,我正在尝试编写一个常规 Java 应用程序,该应用程序从编译时由 ANT 更新的文件中读取当前版本。当使用 OpenJDK 或 SunJDK 在我的开发机器(Ubuntu 11.04 上的 Eclipse 3.5.2)上运行时,它会抛出 FileNotFoundException。添加或删除前导反斜杠似乎没有效果。

关于如何解决这个问题有什么想法吗?我相信错误出在这一行:

in = new FileInputStream("data/build_info.properties");

代码-更新

转换为 Java 属性

String revision = "";

Properties defaultProps = new Properties();
FileInputStream in;
try {
    in = new FileInputStream("data/build_info.properties");
    defaultProps.load(in);
    in.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
    
revision = "Version: " + defaultProps.getProperty("build.major.number") + "." +
defaultProps.getProperty("build.minor.number") + "    " +
"Revision: " + defaultProps.getProperty("build.revision.number");

ANT Jar 脚本

<target name="jar">
    <antcall target="clean" />
    <antcall target="compile" />

    <jar destfile="${dir.dist}/${name.jar}" basedir="." includes="${dir.lib}/*" filesetmanifest="mergewithoutmain">
        <manifest>
            <attribute name="Main-Class" value="emp.main.EmpowerView" />
        </manifest>
        <fileset dir="${dir.build}" includes="**/*" excludes="META-INF/*.SF" />
        <fileset dir="." includes="${dir.media}/*" />
        <fileset dir="." includes="${dir.data}/*" />
    </jar>
    <chmod file="${dir.dist}/${name.jar}" perm="+x" />

</target>

最佳答案

如果您尝试加载 Jar 内的文件,则需要使用 java.lang.Class.getResourceAsStream()加载文件。您无法使用 java.util.File 指向 Jar 中的文件。有关如何使用它的示例,请参阅此答案:

https://stackoverflow.com/questions/4548791

关于java - java中路径名前导反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6833539/

相关文章:

ant - 有没有办法从 Ant 脚本中动态构建 Ant 元素?

java - 如何获取正在运行的JAR文件的路径?

python - 使用键字符串列表作为路径添加到字典

java - 如何设置JButton点击时渐变颜色

java - 子串索引范围

java - 让tomcat自动部署带上下文

java - 让 Ant 把依赖的 jar 放在 ./lib

java - 无法通过命令行或双击运行JAR

linux/libusb 获取usb设备路径

java - 如何在使用JNI的java项目中处理DLL事件?