Zapocececu ovaj post jednim prigodnim citatom:
They said it couldn't be done. And we almost didn't do it!
Znaci da vidimo sta smo imali...
Prvo nam treba klasa koja ce puniti GenKlasa.java fajl. Ona izgleda ovako:
Code:
import java.awt.Toolkit;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
public class Generator {
public static void main(String[] args) {
try {
File f1 = new File("GenKlasa.java");
f1.createNewFile();
PrintStream ps = new PrintStream(f1);
ps.println("import java.awt.Toolkit;");
ps.println("public class GenKlasa {");
ps.println("public static void main(String[] args){");
for(int i=0; i<3; i++){
ps.println("String s"+i+" = \"s"+i+"\";");
}
ps.println("Toolkit.getDefaultToolkit().beep();");
ps.println("}");
ps.println("}");
Runtime.getRuntime().exec("compile.bat");
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
String[] niz = {"",""};
RunKlasa.main(niz);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Prvi deo klase je prilicno samoobjasnjavajuci, znaci puni kodom klasu, for petlja ubacuje String objekte sa imenima s1, s2 itd...
Posle toga program poziva bat fajl koji izegleda ovako:
Citat:
cd\
cd zezanje
javac GenKlasa.java
ovaj bat fajl pokrece javin kompajler koji kompajlira malo pre generisanu klasu. Za to vreme program Generator "spava" 1 sekundu kako bi dao vremena kompajleru da zavrsi i tada poziva main metodu klase RunKlasa ciji kod je:
Code:
import java.io.IOException;
public class RunKlasa {
public static void main(String[] args) {
try {
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
Runtime.getRuntime().exec("run.bat");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Ne secam se zasto ova klasa "spava" verovatno ne mora. Ona poziva run.bat koji u sebi ima:
Citat:
cd\
cd zezanje
java GenKlasa
znaci on pokrece malopre generisanu i iskompajliranu klasu GenKlasa.
Znaci u folderu c:/zezanje morate imati sledece fajlove Generator.class, RunKlasa.class, compile.bat, run.bat i pocetak.bat. Poslednji izgleda ovako:
Citat:
cd\
cd zezanje
java Generator
Kad pokrenete fajl pocetak.bat cuce se beep koji se ne cuje kada se izbaci linija Toolkit.getToolkit().beep(). Sto znaci ili sam ja lud ili radi.
Zavrsicu ovaj post jos jednim prigodnim citatom:
Ne znam zasto sam vam ovo ispricao ali ne moze da skodi...