【发布时间】:2017-11-19 17:57:57
【问题描述】:
我正在尝试编写一个程序(用于学校作业),该程序将采用命令行参数来指定一个目录,暂时只需打印出目录中的文件。我实际上一直在寻找各种答案并尝试了几个小时,只是不知道该怎么做。下面,您将找到我当前的代码。当我打开 CMD 并输入 java DirectoryFiles c:\ 时。
我收到Error, could not find or load main class DirectoryFiles。我刚刚使用c:\ 看看是否可以打印出任何目录。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class DirectoryFiles
{
/**
* Gets command line argument for directory to be used in program.
*
* @param args
*/
public static void main(String[] args)
throws IOException, ClassNotFoundException
{
String path = args[0];
File dir = new File(path);
FileInputStream fis = new FileInputStream(dir);
if ((dir).isDirectory())
{
File[] files = dir.listFiles();
System.out.println(files);
}
}
}
【问题讨论】:
-
在输入命令之前是否将 cmd 中的目录更改为项目/源目录?
-
1)
fis是不必要的 2)dir周围的括号不需要 3) 在数组上调用println只会显示[Ljava.io.File;@memaddr,而不是元素本身。 4) 你是如何编译/运行你的代码的?代码本身应该(几乎)可以工作;这不是这里的问题。 -
感谢您的快速回复!我还没有将目录更改为我的源目录...现在就尝试一下。我正在使用 eclipse 编译代码。
-
@HTNW 感谢您的提示!我删除了 fis,从 dir 中删除了括号,并遍历了数组中的每个索引。我还在 CMD 中运行 .class 文件而不是 .java 文件,现在,它就像一个魅力! :)
标签: java serialization directory command-line-arguments