0

我想使用文件阅读器在控制台上打印当前程序(正在运行的程序)的源代码?怎么做?即使用 java.io.FileReader 类

4

1 回答 1

1

我认为这样做的唯一方法是让您的FileReader对象从您的工作区打开 .java 文件,循环并打印出每一行。

编辑:添加粗略的轮廓。

package test;

import java.io.BufferedReader;
import java.io.FileReader;

public class Test {
    public void printMe() {
        try {
            String classname = Test.class.toString();
            // This gets the full class name, including package
            classname=  classname.replace("class ", "");
            classname= classname.replace(".", "/");
            BufferedReader br = new BufferedReader(new FileReader(<path_to_workspace/project_name/source_folder> + classname + ".java"));

        String line = br.readLine();
        while(line != null) {
            System.out.println(line);
            line=br.readLine();
        }

        } catch (Exception e) {
            e.printStackTrace();
        }       
    }
}

请记住,这仅适用于工作区。您不能在 jar 中打印已编译的 java 类的源代码,因为源代码是经过编译的,因此不是人类可读的。

于 2013-08-01T13:17:05.733 回答