您好我有一个java eclipse项目,我想从命令行执行。我制作了一个罐子,并从命令行运行它。
我想出了如何使用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
我检查了我的目录,它确实有本地文件目录。
答案 0 :(得分:0)
您必须提供用作属性的文件系统路径
java -jar yourprogram.jar -DworkDir=/home/hadoop/project
或命令行参数,然后在对hadoop和File
声明的调用中使用它。