Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 09:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Java - Datei aus Classpath ausführen

Discussion on Java - Datei aus Classpath ausführen within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,608
Received Thanks: 675
Exclamation Java - Datei aus Classpath ausführen

Hey Com,

ich möchte eine eigenständige .exe auf Knopfdruck ausführen.
Dabei hab ich das Problem, wenn ich das Programm zu einer .jar mache, dann liegt die Datei.exe drin.
Aber wie kann ich die Datei.exe nun aus diesem ausführen, sodass ich egal an welchem PC diese einfach ausführen kann und nicht immer einen neuen Pfad angeben muss?

Die Datein liegen so zusammen in der IDE:



Probiert habe ich getResourceStream(String), aber dies liest nur die Datei, aber führt diese nicht aus.

Danke schonmal im Vorraus.

MfG Bombasticx3
Bombasticx3 is offline  
Old 02/12/2016, 11:09   #2
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,548
Received Thanks: 1,418
Ich denke du wirst die Datei erst auf die Festplatte schreiben und dann dort ausführen müssen, es würde mich wundern wenn die JavaRuntime plötzlich fremde Programmiersprachen ausführen kann.

Egal auf welchem PC gilt allerdings auch nicht, außer PC bedeutet für dich Windows.

Edit:
Windows kann Programme doch auch ausführen, wenn die in einem zip-Archiv stecken und eine jar-Daet ist da nichts anderes. Allerdings weiß ich nicht ob das so einfach funktioniert, vermutlich entpackt Windows die Datei dann trotzdem vorher irgendwohin. Es wäre also am besten, wenn du sie selbst irgendwo ablegst.
ComputerBaer is offline  
Thanks
1 User
Old 02/12/2016, 15:37   #3
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,608
Received Thanks: 675
Quote:
Originally Posted by ComputerBaer View Post
Ich denke du wirst die Datei erst auf die Festplatte schreiben und dann dort ausführen müssen, es würde mich wundern wenn die JavaRuntime plötzlich fremde Programmiersprachen ausführen kann.

Egal auf welchem PC gilt allerdings auch nicht, außer PC bedeutet für dich Windows.

Edit:
Windows kann Programme doch auch ausführen, wenn die in einem zip-Archiv stecken und eine jar-Daet ist da nichts anderes. Allerdings weiß ich nicht ob das so einfach funktioniert, vermutlich entpackt Windows die Datei dann trotzdem vorher irgendwohin. Es wäre also am besten, wenn du sie selbst irgendwo ablegst.
Ja, dass jar ein Archiv ist und Windows Datein aus einem Archiv ausführen kann, weiß ich ja.
Wenn ich die Datei aus dem Archiv entpacke und sie in einen temporären Pfad speichere und von dort aus mit Runtime ausführe und beim schließen des Programmes den Pfad wieder lösche, wäre auch eine Möglichkeit.
Wäre das mit Java möglich?
Bombasticx3 is offline  
Old 02/12/2016, 15:52   #4
 
elite*gold: 0
Join Date: Jul 2009
Posts: 211
Received Thanks: 137
Quote:
Originally Posted by Bombasticx3 View Post
Wäre das mit Java möglich?
Ja wie du bereits festgestellt hast, kannst du die Datei als InputStream lesen.

Verfahren währe dann folgendes:
Code:
1. InputStream öffnen
2. Datei im Temppfad erstellen (am besten Dateiname-TimeStamp.exe) und OutputStream erstellen
    (schau dir dafür mal die File.createTempFile(String prefix, String suffix) Funktion an)
3. Solange InputStream.read nicht am Ende
    lese byte[] von Input und schreibe byte[] in output
4. Führe Datei aus.
5. Lösche Datei wieder.
Mysthik is offline  
Thanks
1 User
Old 02/12/2016, 16:09   #5
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,608
Received Thanks: 675
Quote:
Originally Posted by Mysthik View Post
Ja wie du bereits festgestellt hast, kannst du die Datei als InputStream lesen.

Verfahren währe dann folgendes:
Code:
1. InputStream öffnen
2. Datei im Temppfad erstellen (am besten Dateiname-TimeStamp.exe) und OutputStream erstellen
    (schau dir dafür mal die File.createTempFile(String prefix, String suffix) Funktion an)
3. Solange InputStream.read nicht am Ende
    lese byte[] von Input und schreibe byte[] in output
4. Führe Datei aus.
5. Lösche Datei wieder.
D.h. also
Code:
 1. InputStream stream = BotMain.class.getResourceAsStream("/Bot/Fishingbot.exe"); //InputStream
2. leere .exe erstellen
3.in ner for-Schleife die Bot.exe in Bot_copy.exe schreiben
4. runtime ausführen
5. löschen
Bin nun soweit:

Code:
 public static void copy() throws IOException {
        File fSrc = new File("/Main/Fishingbot.exe"); // Quelldatei 
        File fDes = new File(createTempFile("bot", "exe").getAbsolutePath()); // Zieldatei
        FileInputStream fis = new FileInputStream(fSrc); //Stream fuer Quelldatei
        FileOutputStream fos = new FileOutputStream(fDes); //Stream fuer Zieldatei
        byte buf[] = new byte[1024]; // Buffer für gelesene Daten
        while (fis.read(buf) != -1) { // solange lesen, bis EOF
            fos.write(buf); // Inhalt schreiben
        }
        fis.close();
        fos.flush();
        fos.close();
    }
Dies funktioniert nicht, da die Zieldatei nicht gefunden werden kann.
(new File(String) sucht nicht im claspath).
Ich kann die Datei nur als InputStream finden.
Aber hier brauch ich einen FileInputStream.
Wer ne Idee?

#edit:

Habs geschafft.

Code:
 public static void copy() throws IOException {
        File fSrc = new File("src/Main/Fishingbot.exe"); // Quelldatei 
        File fDes = new File(createTempFile("bot", "exe").getAbsolutePath()); // Zieldatei
        FileInputStream fis = new FileInputStream(fSrc); //Stream fuer Quelldatei
        FileOutputStream fos = new FileOutputStream(fDes); //Stream fuer Zieldatei
        byte buf[] = new byte[1024]; // Buffer für gelesene Daten
        while (fis.read(buf) != -1) { // solange lesen, bis EOF
            fos.write(buf); // Inhalt schreiben
        }
        fis.close();
        fos.flush();
        fos.close();
    }
Bombasticx3 is offline  
Reply


Similar Threads Similar Threads
cmd text datei in java datei umwandeln
02/07/2013 - C/C++ - 2 Replies
hey leute weis jemand wie man eine text datei (editor datei) in eine java datei umwandel ich weiß das man das mit cmd machen kann (javav beehl aber wie kann ich auch die laufwerke zugreifen ? sry für die schlechte rechtschreibung LG
cmd text datei in java datei umwandeln
02/07/2013 - elite*gold Trading - 3 Replies
hey leute weis jemand wie man eine text datei (editor datei) in eine java datei umwandel ich weiß das man das mit cmd machen kann (javav beehl aber wie kann ich auch die laufwerke zugreifen ? sry für die schlechte rechtschreibung :D LG
Java - Eine Datei ausführen
01/25/2012 - General Coding - 2 Replies
hallo ich würde gerne ein programm in java durch den code starten weiß aber nicht wie das geht bitte um schnelle antwort :)
[Frage]Java File mit Cmd ausführen.
05/26/2011 - General Coding - 3 Replies
Heyho, hab mal ne kurze Frage... ich möchte mit einem Cmd Script (in einer Batch File) eine Java Datei ausführen. Bis jetzt habe ich es ganz einfach immer so gemacht: Bei Win XP klappte es ohne Probleme. Jetzt jedoch bei Win7,meint er das das Java falsch geschrieben wurde.Auch bei: Angaben: Windows 7 Ultimate
Java ausführen
12/17/2010 - General Coding - 5 Replies
Hi! Wollt mal fragen wie man .java datein ohne konsole ausführt. Danke schonmal.



All times are GMT +2. The time now is 09:47.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.