java—从jar中动态创建的目录(在文件系统中)读取

nhn9ugyo  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(231)

嗨,我有一个javaeclipse项目,我想从命令行执行。我制作了一个jar并从命令行运行它。
我知道如何使用getresourceasstream访问jar中的文件。
前任:

InputStream is = Extractor.class.getResourceAsStream("CompanyNameListModified.txt");
BufferedReader  in=new BufferedReader(new InputStreamReader(is));`

我现在想知道的是如何从jar访问目录。
目前:

Runtime.getRuntime().exec("hadoop fs -get /tmp/stockmarkets/ localfile");
File dir = new File("/home/hadoop/project/localfile");`

这会产生filenotfoundexception。
我想做的是

File[] directoryListing = dir.listFiles();
if (directoryListing != null) {
for (File child : directoryListing) {
        ....
    }
}

因此,转到目录并在该目录中的每个文件上循环。。我该怎么做才能让它适合我的jar。?
所以我试了这个:

Runtime.getRuntime().exec("hadoop fs -get /tmp/stockmarkets/ localfile");
File dir =new File(Extractor.class.getResource("/home/hadoop/project/localfile").getPath());

错误:

Exception in thread "main" java.lang.NullPointerException

我检查了我的目录,它确实有本地文件目录。

nnt7mjpx

nnt7mjpx1#

必须提供一个文件系统路径作为属性

java -jar yourprogram.jar -DworkDir=/home/hadoop/project

或命令行参数,然后在调用hadoop和 File 宣言。

相关问题