» »

Zaganjanje externi probgramov [java]

Zaganjanje externi probgramov [java]

Bojevnik ::

Imam sledeči problem. Delam program (java) ki se zanaša na nek dru program (recimo abc.exe).

Problem pa nastane ko hočem program abc.exe vključiti v svoj program in ga zapakirati v jar obliko.
Abc.exe mi je že uspelo dodati v resource in ga zagnati. Toda samo v eclipsu, ko pa naredim jar datoteko in jo probam pognati, mi pa vrne napako da datoteke abc.exe ne najde.

Ima mogoče kdo kakšen predlog kako bi to rešil?

nightrage ::

Ne vem zakaj bi hotel exe dat v jar datoteko. Drugač pa prlep kodo, kako dostopaš do resources.

Bojevnik ::

exe hočem dati v jar datoteko zato, da mi jo ne bo potrebno zmeram zraven kopirati.

Pot do programa nastavim tako
 public static String               FRUIT_FILEPATH                                                                  = Constants.class.getResource("/fruit/Fruit-2-3-1.exe").toString().substring(6).replaceAll("%20", " ");


Če je pot pravilna prevejam stem:
if (!new File(Constants.FRUIT_FILEPATH).exists()) {
	    System.err
		    .println("Fruit file path is not set correctly. Ending program");
	    System.exit(1);
	}


Sam exe pa kličem tako:
/**
     * Checks if external program fruit is ready.
     * 
     * @return <code>true</code> if fruit is ready, otherwise <code>false</code>
     *         .
     */
    public static boolean isFruitReady() {
	String h = null;
	try {
	    Runtime rt = Runtime.getRuntime();
	    Process pr = rt.exec(Constants.FRUIT_FILEPATH);
	    writeToProcess(pr, "isready");

	    pr.getOutputStream().close();
	    BufferedReader input = new BufferedReader(new InputStreamReader(
		    pr.getInputStream()));

	    String line = null;
	    while ((line = input.readLine()) != null) {
		h = line;
	    }
	    input.close();
	}
	catch (Exception e) {
	    e.printStackTrace();
	}
	return h.equals("readyok");
    }

Spura ::

eclipse ne zna jarov dobr pakirat. Odpri jar in dodaj exe.

Bojevnik ::

Očitno ne bo šlo na tak nalčin, ker jar nima veze z OS pomeni da tudi zanj ne ne obstaja (v tem kontekstu seveda:) ).
Tako da je kot kaže edini način če iz jar-a skopiram exe na disk in ga potem poženem.

Vseeno hvala za odgovore!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[JAVA] HTTPS client

Oddelek: Programiranje
173152 (1882) peterv6i
»

Java in pošiljanje elektronske pošte!!

Oddelek: Programiranje
51333 (1234) janez_janez
»

[java] problem pri pretvarjanju datoteke v string

Oddelek: Programiranje
51108 (998) pujs
»

[JAVA] branje iz datoteke

Oddelek: Programiranje
242383 (2018) Bela01
»

[java] Runtime.exec()

Oddelek: Programiranje
111865 (1738) borchi

Več podobnih tem