【问题标题】:Create folder in jar file dir在 jar 文件目录中创建文件夹
【发布时间】:2012-02-24 09:34:06
【问题描述】:

我正在寻找一种解决方案来在 .jar 文件所在的文件夹中创建一个新文件夹。

所以如果我在C:\test\temp 中有一个 test.jer 文件,我希望能够创建一个新文件夹 (newFolder):C:\test\temp\newFolder.

任何人都知道如何做到这一点。 我尝试过使用

System.getProperty("user.dir").

但这只会给我正确的,如果我双击 jar 文件。 我需要从调度程序运行它,然后更改位置。

【问题讨论】:

    标签: java logging jar


    【解决方案1】:

    一般来说,您不能轻易地确定您的 JAR 文件在运行时的位置。您的虚拟机的执行环境可以告诉您用户目录(如您所说),但这是启动虚拟机的目录。因此,如果您双击您的 JAR,那实际上就是 JAR 所在的目录。但是如果你在命令行上调用java,例如

    c:\some\directory> java -cp c:\temp\test.jar main.Class

    那么“user.dir”将包含“c:\some\directory”。 这种信息缺失是故意的,因为它允许 VM 透明地从不同位置加载类。

    您最好的选择是将选择的目录作为命令行参数传递。在最坏的情况下,您可以使用“user.dir”作为默认值。但是真正的最佳解决方案取决于您为什么要将目录放置在 JAR 所在的位置。

    【讨论】:

    • 简而言之,我的问题。在我的情况下,“user.dir”是调用 jar 文件的调度程序工具的目录问题是日志的放置。我想将日志与 jar 文件一起放置。 jar 文件作为计划任务运行。所有任务都放在自己的文件夹中,并带有以下日志。但是该服务必须在不同的机器上进行分发。所以同一个程序不得不把日志放在不同的地方。但它总是必须根据 jar 文件的位置来放置它们。有意义吗?
    • 没有找到解决方案。最终将 jar 文件定位作为 cmd 参数。
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 2018-06-16
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 2015-05-22
    • 2021-01-13
    相关资源
    最近更新 更多