tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
2449
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    borislav borislav ist offline Grünschnabel
    Registriert seit
    Feb 2005
    Beiträge
    4
    Ich habe ein Programm, das ein anderes Programm Erg.java erzeugt. Jetzt möchte ich das auch dieses Programm auch automatisch compiliert und gestartet wird.

    Wie kann ich den Befehl "javac" in Programm ausführen?
    Wie kann ich ein Programm, die in Verzeichniss "c:\Java\jdk1.4\bin\Erg.java" liegt ?


    try{

    Runtime.getRuntime().exec(
    "javac Erg.java");

    }
    catch (Exception e){System.err.println(e.toString());}
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Wenn du das tools.jar in den Classpath legst kannst du folgendes machen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    
    /*
     * Created on 11.02.2005@17:43:59
     *
     * TODO Licence info
     */
    package de.tutorials;
     
    import java.io.File;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLClassLoader;
     
    import com.sun.tools.javac.Main;
     
     
    /**
     * @author Administrator
     *
     * TODO Explain me
     */
    public class CompilerTest {
     
        public static void main(String[] args) {
            Main.compile(new String[]{"c:/Test.java"});
            try {
                URLClassLoader ucl = new URLClassLoader(new URL[]{new File("c:/").toURL()});
                Class clazz = ucl.loadClass("Test");
                Object o = clazz.newInstance();
                Method m = clazz.getMethod("foo",new Class[0]);
                m.invoke(o,new Object[0]);
                
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }

    Test.java (liegt unter c:\)
    Code :
    1
    2
    3
    4
    5
    
    public class Test{
      public void foo(){
         System.out.println("tutorials.de");
      }
    }

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. einzelne Programm mit eigenem Programm starten
    Von mgraf im Forum Microsoft Windows
    Antworten: 12
    Letzter Beitrag: 12.09.08, 21:07
  2. Antworten: 0
    Letzter Beitrag: 07.09.08, 17:58
  3. Gestartetes Programm kann kein weiteres Programm starten
    Von RuFFnEcK im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 04.10.06, 13:48
  4. Antworten: 0
    Letzter Beitrag: 25.04.05, 20:06
  5. Antworten: 2
    Letzter Beitrag: 01.03.05, 12:40