java 如何通过命令行传递一个文本文件名字,进而找到这个类,并读取其中的内容

package chapter22;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

public class practice9 {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Usage: java practice9 fullfilename");
System.exit(0);
}
String filename = args[0];
Map map = new HashMap();
try {
Scanner in = new Scanner(new File(filename));
String line;
while ((line = in.nextLine()) != null) {
String[] words = line.split("[\t\r\n,.;:!?(){]");
for (int i = 0; i < words.length; i++)
if (!map.containsKey(words[i]))
map.put(words[i], 1);
else
map.put(words[i], map.get(words[i]).intValue() + 1);

        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    Set<Entry<String, Integer>> entrySet = map.entrySet();
    for(Map.Entry<String, Integer> entry:entrySet){
        System.out.println(entry.getKey()+entry.getValue());
    }
}

}
图片说明

1.把practice9的包名去掉,再运行。
2.到practice9.java文件的上一级目录运行,(编译还在这一级目录)

3.还是现在的目录,运行时加上包名,也就是java chapter22.practice9,需要完整的类名

执行java命令时,要在包名所在的目录下执行加上包名的全路径java名称才对。在你上面cmd控制台后面继续

 cd ..
 java chapter22.practice9

先退回src目录下,再运行全路径java类名就OK了。

先进dos输入cmd-->javac 文件名.java 进行编译--->在用Java 文件名.java进行运行。