3

我有一个简单的 Java 类:

public class T {
    public static void main(String[] args) {
        System.err.println(Thread
              .currentThread()
              .getContextClassLoader()
              .getResource("."));
    }
}

在windows上运行上面的类我得到:

file:/T:/java/

在 Linux 上运行它时,我得到了不同的东西:

jar:file:/usr/lib/jvm/java-6-openjdk-common/jre/lib/ext/pulse-java.jar!/

这个问题导致我的程序在 Linux 上失败,因为它找不到我指定的文件。关于如何解决它的任何想法?

4

1 回答 1

2

程序的当前目录可能在类路径中,也可能不在类路径中,这取决于程序的执行方式。如果您需要获取可能在 jar 文件中或可能在当前目录中的内容,那么您应该使用两个单独的检查:

  1. 首先检查类路径
  2. 如果未找到,则检查当前目录(您可以使用 获取当前工作目录new File(""))。
于 2013-05-01T13:37:19.090 回答