6

我有一个小测验,我自己无法解决。我想构建一个程序,用java打印自己的源代码。任何人都知道如何做到这一点?像这个例子:

public class SourcePrint {

    private static final long serialVersionUID = 1L;

    public void test(){
        System.out.println("Hi I'm test");

    }
    public static void main(String[] args) {
        new SourcePrint().test();
    }

}

当我们运行它时,输出将是这样的:

public class SourcePrint {

    private static final long serialVersionUID = 1L;

    public void test(){
        System.out.println("Hi I'm test");

    }
    public static void main(String[] args) {
        new SourcePrint().test();
    }

}

我不知道该怎么做。有人知道解决方案或至少是提示吗?这不是反编译器,测验制作者告诉我提示是“静态”。

4

4 回答 4

6

http://en.wikipedia.org/wiki/Quine_%28computing%29

于 2012-06-26T04:09:32.807 回答
3
import java.io.*;  
class Source  
{  
    public static void main(String args[])  
    {  
        try{  

            //open the file  
        FileInputStream fstream=new FileInputStream("D://Springs WorkSpace/Testing/src/Source.java");//here pass the own java file name with full path 

            // use DataInputStream to read binary NOT text  
        // DataInputStream in=new DataInputStream(fstream);  

            //  
        BufferedReader br=new BufferedReader(new InputStreamReader(fstream));  
            //read data line by line from the file  
            String s;  
            while((s = br.readLine() ) != null)  
            {  
                System.out.println(s);  
            }  
            in.close();  
        }  
        catch(Exception e){  
            e.printStackTrace();  
        }  
    }  
}  
于 2013-11-20T07:37:15.407 回答
3

这是一个可能对 java 中的 Quine 有用的示例:

public class Quine {

    static String s = "public class Quine { public static void main(String[] args) { char c=34; System.out.println(s+c+s+c+';'+'}'); } static String s=";

    public static void main(String[] args) {
        char c = 34;
        System.out.println(s + c + s + c + ';' + '}');
    }
}

当然还有看似强制性的维基百科链接:维基百科:Quine。取决于程序有多大,这里的链接也可能有一些很好的例子:Java Quine

于 2012-06-26T04:17:00.827 回答
2

一个快速的谷歌搜索出现了以下链接:

http://en.wikipedia.org/wiki/Quine_%28computing%29

您要查找的程序类型通常称为 quine。

于 2012-06-26T04:07:39.770 回答