import java.net.*; import java.io.*; public class Kompileerija{ public static void main(String argumendid[]) throws Exception{ ServerSocket ss = new ServerSocket(3721); while(true){ new KompileerimisLoim(ss.accept()); } } } class KompileerimisLoim extends Thread{ String sisu="", failinimi; Socket sc; public KompileerimisLoim(Socket usc){ sc=usc; start(); } public void run(){ try{ DataInputStream sisse=new DataInputStream(sc.getInputStream()); DataOutputStream valja=new DataOutputStream(sc.getOutputStream()); failinimi=sisse.readLine(); if(failinimi.equals(".lopp"))System.exit(0); String vahe=sisse.readLine(); while(vahe!=null&!vahe.equals(".")){ System.out.println(vahe); sisu+=vahe+"\n"; vahe=sisse.readLine(); } System.out.println(sisu); DataOutputStream rf=new DataOutputStream(new FileOutputStream(failinimi+".java")); rf.writeBytes(sisu); rf.close(); Process pr=Runtime.getRuntime().exec("javac "+failinimi+".java"); DataInputStream br=new DataInputStream( pr.getErrorStream()); String teated=""; vahe=""; vahe=br.readLine(); while(vahe!=null){ teated+=vahe+"\n"; vahe=br.readLine(); } pr.waitFor(); System.out.println(teated); valja.writeBytes(teated); if(teated.trim().equals(""))valja.writeBytes(".Kompileeritud\n"); else sc.close(); InputStream in = new FileInputStream(failinimi+".class"); ByteArrayOutputStream bs=new ByteArrayOutputStream(); int c=in.read(); while(c!=-1){ bs.write((byte)c); c=in.read(); } byte b[]=bs.toByteArray(); valja.write(b, 0, b.length); valja.close(); }catch(Exception e){e.printStackTrace();} } }