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?
Annonceindlæg fra SoftwareOne
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
10. april 2006 - 00:07
#2
men det er klassens navn ikke filens navn man angiver til java.exe
10. april 2006 - 00:08
#3
derudover kan du også loade JavaFil klassen og kalde main via reflection og
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\" ");
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.
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");
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
10. april 2006 - 00:25
#8
Hum - jeg får ingen reaktion stadig. Ligemeget om jeg skriver et forkert filnavn eller det rigtige.
10. april 2006 - 00:34
#9
ah warten - jeg kan måske ikke se om den faktisk kører eller er blevet kørt?
10. april 2006 - 00:39
#10
det virker sq. Det kører usynligt i baggrunden - hvilket er lidt mærkeligt men ganske fint egentlig.
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
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?
10. april 2006 - 00:49
#13
reflection er langt hurtigere men koden er nok lidt mere tricky at læse
10. april 2006 - 00:51
#14
jeg kan godt lige prøve at lave et eksempel
10. april 2006 - 00:53
#15
hurtigere i den tid det tager at starte selve filen, eller i afviklingen?
10. april 2006 - 00:56
#16
hurtigere start
10. april 2006 - 00:57
#17
package april; public class A { public static void main(String[] args) { System.out.println("A"); } }
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[] { } } ); } }
10. april 2006 - 10:57
#19
tak for det! smid et svar.
10. april 2006 - 12:34
#20
svar
Kurser inden for grundlæggende programmering