Avatar billede trophymanager Nybegynder
09. april 2006 - 23:53 Der er 19 kommentarer og
1 løsning

java runtime

public class runTest {
   
    public static void main(String[] args) {
        try {   
            Runtime.getRuntime().exec("C:\\Programmer\\Java\\jdk1.5.0_02\\bin\\java.exe \"C:\\javaFil.class\" ");
        }
          catch(java.io.IOException e) {
            System.out.println("Filen findes ikke: " +e);
          }
  }
}

Følgende dur hvis jeg prøver at åbne det med cmd.exe, men der åbner det bare i notesblok. Er det muligt at eksekvere javaFil fra java.exe?
Avatar billede arne_v Ekspert
10. april 2006 - 00:06 #1
ja

Runtime.getRuntime().exec("C:\\Programmer\\Java\\jdk1.5.0_02\\bin\\java.exe -cp . javaFil");

hvis JavaFil.class ligger i current dir
Avatar billede arne_v Ekspert
10. april 2006 - 00:07 #2
men det er klassens navn ikke filens navn man angiver til java.exe
Avatar billede arne_v Ekspert
10. april 2006 - 00:08 #3
derudover kan du også loade JavaFil klassen og kalde main via reflection og
Avatar billede trophymanager Nybegynder
10. april 2006 - 00:13 #4
hum - der er stadig ingen reaktion med linien:

Runtime.getRuntime().exec("C:\\Programmer\\Java\\jdk1.5.0_02\\bin\\java.exe -cp . \"C:\\Documents and Settings\\Ejer\\MyProjects\\Me\\MatchEngine\\src\\javaFil\" ");
Avatar billede trophymanager Nybegynder
10. april 2006 - 00:17 #5
Det kan godt være det er lidt overkill det jeg er i gang med. Humlen er at jeg gerne vil køre en javafil der indeholder en main-klasse :). Hvis der er nogen lettere måder er alle inputs velkomne.
Avatar billede arne_v Ekspert
10. april 2006 - 00:19 #6
Runtime.getRuntime().exec("C:\\Programmer\\Java\\jdk1.5.0_02\\bin\\java.exe -cp . javaFil");

eller


Runtime.getRuntime().exec("C:\\Programmer\\Java\\jdk1.5.0_02\\bin\\java.exe -cp  \"C:\\Documents and Settings\\Ejer\\MyProjects\\Me\\MatchEngine\\src\" javaFil");
Avatar billede arne_v Ekspert
10. april 2006 - 00:20 #7
argumentet er klassenavnet ikke filnavnet

java sætter selv .class på

og -cp angiver i hvilke dir den leder efter filen
Avatar billede trophymanager Nybegynder
10. april 2006 - 00:25 #8
Hum - jeg får ingen reaktion stadig. Ligemeget om jeg skriver et forkert filnavn eller det rigtige.
Avatar billede trophymanager Nybegynder
10. april 2006 - 00:34 #9
ah warten - jeg kan måske ikke se om den faktisk kører eller er blevet kørt?
Avatar billede trophymanager Nybegynder
10. april 2006 - 00:39 #10
det virker sq. Det kører usynligt i baggrunden - hvilket er lidt mærkeligt men ganske fint egentlig.
Avatar billede arne_v Ekspert
10. april 2006 - 00:42 #11
du kan vente på at processen er kørt færdigt hvis du vil

men som sagt kan du alternativt kigge på noget reflection
Avatar billede trophymanager Nybegynder
10. april 2006 - 00:44 #12
hvor kan jeg læse om dette? og hvad er forskellen?

Jeg har en klasse hvor jeg har lavet et lille program der på bestemte tidspunkt kalder javafiler der laver en masse opdateringer i en database. Er der en af de to der er den mest oplagte?
Avatar billede arne_v Ekspert
10. april 2006 - 00:49 #13
reflection er langt hurtigere

men koden er nok lidt mere tricky at læse
Avatar billede arne_v Ekspert
10. april 2006 - 00:51 #14
jeg kan godt lige prøve at lave et eksempel
Avatar billede trophymanager Nybegynder
10. april 2006 - 00:53 #15
hurtigere i den tid det tager at starte selve filen, eller i afviklingen?
Avatar billede arne_v Ekspert
10. april 2006 - 00:56 #16
hurtigere start
Avatar billede arne_v Ekspert
10. april 2006 - 00:57 #17
package april;

public class A {
    public static void main(String[] args) {
        System.out.println("A");
    }
}
Avatar billede arne_v Ekspert
10. april 2006 - 00:57 #18
package april;

import java.lang.reflect.*;

public class B {
    public static void main(String[] args) throws Exception {
        Method m = Class.forName("april.A").getMethod("main", new Class[] { String[].class });
        m.invoke(null, new Object[] { new String[] { } } );
    }
}
Avatar billede trophymanager Nybegynder
10. april 2006 - 10:57 #19
tak for det!

smid et svar.
Avatar billede arne_v Ekspert
10. april 2006 - 12:34 #20
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester