Imprimir próprio código-fonte sem ajuda de arquivo nenhum!......[RESOLVIDO]

Imprimir o próprio código-fonte
sem ajuda de arquivo nenhum!
será ki existe um comando ki faça isso?

\o/

System.out.println("");

http://www.cs.princeton.edu/introcs/76computability/Quine.java

public class Quine { public static void main(String[] args) { char c=34; System.out.println(s+c+s+c+';'+'}'); } 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=";}

Para outras linguagens, veja:

NUm deu certo num?

tipo o programa tem ki roda e imprimir suas proprias linhas de programção!
to aki procurando um comando mais não acho!

Não entendi o sentido desse Quine Computing.

  1. Imprimir -> saída do console

ou

  1. Imprimir -> impressora

Qual dos dois?

De qualquer forma, é preciso especificar os arquivos os quais você quer imprimir (crie uma instância de File para cada arquivo de código fonte para depois imprimi-los).

[quote=arthur_roots]NUm deu certo num?

tipo o programa tem ki roda e imprimir suas proprias linhas de programção!
to aki procurando um comando mais não acho!
[/quote]
Se for isso, veja o que o thingol colocou acima.

BOm dia!

mais no enunciado ele pedi pra não usar nenhuma ajuda de arquivo…!

Amigo, você não entendeu o enunciado.
O que o seu professor pediu é um programa do tipo “quine”, tal como o que o Thingol mostrou.
Para você fazer esse programa “Quine.java” rodar, você precisa copiá-lo para um arquivo Quine.java, gravá-lo e então compilá-lo (comando javac Quine.java). Depois, você precisa rodá-lo (java -cp . Quine).
A saída do programa Quine é o próprio texto do programa Quine. OK?

O que o professor não quer é um programa do seguinte tipo:

import java.io.*;
classe ProgramaIncorreto {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader (new FileReader ("ProgramaIncorreto.java"));
        for (String linha = br.readLine(); linha != null; linha = br.readLine()) {
            System.out.println (linha);
        }
        br.close();
    }
}

O programa acima imprime a si próprio (desde que o arquivo “ProgramaIncorreto.java” esteja no diretório corrente), mas não vale porque precisa de um arquivo adicional, não só o do próprio programa. OK?

acredito que de para você pegar a referencia a classe pelo suaClasse.class.getREsourceAsStream(“NomeDaSuaClasse”);

a partir dai você le o conteudo como se fosse um texto e imprime (diferente do exemplo que seu processor não quer, desse jeito funciona mesmo que a classe estiver dentro de um jar por exemplo).

[quote=maior_abandonado]acredito que de para você pegar a referencia a classe pelo suaClasse.class.getREsourceAsStream(“NomeDaSuaClasse”);

a partir dai você le o conteudo como se fosse um texto e imprime (diferente do exemplo que seu processor não quer, desse jeito funciona mesmo que a classe estiver dentro de um jar por exemplo).[/quote]

Não, ele não quer que o programa seja lido de um arquivo, de um resource ou coisa que o valha. De qualquer maneira, se fizer isso, vai acabar puxando o .class, não o .java, e você não vai ter um resultado muito agradável. A idéia de um programa “quine” é que o código fonte seja suficiente para imprimir a si próprio sem precisar de qualquer outro auxílio externo.

Também não imagino aplicações práticas, acho que é só por diversão mesmo… um tipo de desafio.

É claro que isso não é nem um pouco prático, conforme vocês deveriam ter visto naquele link da Wikipedia. É só uma curiosidade teórica.

++

Agradecido mesmo! por todas as respostas

eu estou iniciando no Java então achu ki esse exercicio eu vou compreender melhor mais pra frente!

mais vou deixar salvo os
comandos que vcs passaram!!!

Agradecido pela atenção de Todos!

Como foi dito, é só uma diversão.

http://www.nyx.net/~gthompso/quine.htm

tem mais exemplos de quines.

[quote=entanglement][quote=maior_abandonado]acredito que de para você pegar a referencia a classe pelo suaClasse.class.getREsourceAsStream("NomeDaSuaClasse");

a partir dai você le o conteudo como se fosse um texto e imprime (diferente do exemplo que seu processor não quer, desse jeito funciona mesmo que a classe estiver dentro de um jar por exemplo).[/quote]

Não, ele não quer que o programa seja lido de um arquivo, de um resource ou coisa que o valha. De qualquer maneira, se fizer isso, vai acabar puxando o .class, não o .java, e você não vai ter um resultado muito agradável. A idéia de um programa "quine" é que o código fonte seja suficiente para imprimir a si próprio sem precisar de qualquer outro auxílio externo. [/quote]

certo, eu tinha intendido errado quanto a ser lido de um arquivo, pensei que por você compilar do proprio arquivo .java isso não fosse considerado…

mas quanto a funcionar, funciona sim, quando você pega o resource, ele pega o local onde esta o arquivo da classe e não o arquivo em si… (eu testei aqui e funcionou