Java-listFiles()返回nullpointerexception

Java-listFiles()返回nullpointerexception,java,eclipse,nullpointerexception,Java,Eclipse,Nullpointerexception,我正在运行一个从eclipse导出的可运行JAR文件,并得到一个NullPointerException(在Linux VPS上)。在我的Windows PC中,它可以完美地工作在文件中。这是我的代码: public Main() throws Throwable { Policy.setPolicy(new PluginPolicy()); System.setSecurityManager(new SecurityManager()); File directory

我正在运行一个从eclipse导出的可运行JAR文件,并得到一个NullPointerException(在Linux VPS上)。在我的Windows PC中,它可以完美地工作在文件中。这是我的代码:

public Main() throws Throwable {
    Policy.setPolicy(new PluginPolicy());
    System.setSecurityManager(new SecurityManager());

    File directory = new File("src/Plugins/Rogue/");

    File[] fList = directory.listFiles();
    if(fList.length > 0) { 
        for (File file : fList) {
            if (file.isFile()) {
                System.out.println(file.getName());
                String path = file.getParent().substring(4).replace("\\", ".");
                String pluginName = file.getName().split("\\.")[0];

                File unauthorizedJarFile = new File(pluginName + ".jar");
                ClassLoader unauthorizedLoader = URLClassLoader.newInstance(new URL[] { unauthorizedJarFile.toURI().toURL() });
                Plugin unauthorizedPlugin = (Plugin) unauthorizedLoader.loadClass(path + "." + pluginName).newInstance();
                unauthorizedPlugin.run();

            }
        }
    }
}
我在Linux VPS中得到了以下信息:

Exception in thread "main" java.lang.NullPointerException
        at Test.Main.<init>(Main.java:23)
        at Test.Main.main(Main.java:12)

感谢您的帮助!谢谢

此文件夹在哪里?这看起来很像您试图将类路径上的资源作为文件读取……首先,在这两种情况下,程序的CWD是什么。
src
文件夹在那里吗?此外,文件路径在Unix系统上不使用“\”—此代码永远不会跨平台。1—如果抽象路径名不存在,则调用的
listFiles
将返回
null
;2-一旦程序实际生成,
src
不太可能存在;3-出于上述原因,您不应在代码中引用
src
目录;3-如果你已经jar了你的应用程序,插件目录将嵌入jar中,这意味着它无法通过
java.io.File
API…@MadProgrammer访问,这是我的第一个想法-但是OP似乎在复制src文件夹。无论如何;这个问题现在有点太宽泛了。@MadProgrammer#3,没有使用
java.io.File
API还有其他方法吗?apachecommons?
Rogue.java
swaggy!