reissaus73
Goto Top

Netbeans - Wie kann externe Dateien in JAR File einbinden

Wer kann mir bei folgenden Problem helfen.

Ich möchte in meiner kompilierten JAR Datei externe Dateien (exe und dll) einbinden.
Die eingebundenen Dateien sollen nicht ausgeführt werden. Bei Start der JAR oder per Click sollen
diese Dateien einfach nur an die jeweiligen Orte entpackt werden.

Content-Key: 336740

Url: https://administrator.de/contentid/336740

Ausgedruckt am: 19.03.2024 um 11:03 Uhr

Mitglied: 132895
132895 03.05.2017 aktualisiert um 15:28:51 Uhr
Goto Top
Als Resource im Projekt einbinden kompilieren und via Code extrahieren:
http://stackoverflow.com/questions/11472408/extracting-a-file-from-the- ...

Gruß
Mitglied: reissaus73
reissaus73 11.05.2017 um 11:34:38 Uhr
Goto Top
Danke erst einmal für diesen Link, aber ich möchte ja die variablen nicht nur auslesen sondern benötige diese auch in der Hauptklasse.
Mitglied: 132895
132895 11.05.2017 aktualisiert um 11:55:37 Uhr
Goto Top
Zitat von @reissaus73:

Danke erst einmal für diesen Link, aber ich möchte ja die variablen nicht nur auslesen sondern benötige diese auch in der Hauptklasse.
Les deine eigene Frage nochmal selbst:

"Die eingebundenen Dateien sollen nicht ausgeführt werden. Bei Start der JAR oder per Click sollen
diese Dateien einfach nur an die jeweiligen Orte entpackt werden. "


Da stand nichts von DLL einbinden und nutzen sondern nur was von "extrahieren"!

http://blog.mwrobel.eu/how-to-call-dll-methods-from-java/
Mitglied: reissaus73
reissaus73 11.05.2017 um 14:58:39 Uhr
Goto Top
Sorry, der Kommentar war für die andere Frage mit der SID aus dem AD, hab scheinbar etwas verwechselt.
das mit den Dateien einbinden habe ich so gelöst :

package resources;
import java.util.logging.Logger;
import wpr.io.EnumFile;
import wpr.io.InternalFolders;


public class ResourceFile extends EnumFile {
    private static final Logger LOG = Logger.getLogger(ResourceFile.class.getName());
    
    public static final ResourceFile DATEI = new ResourceFile("datei.dll");  

        public ResourceFile(String file) {
        super(InternalFolders.Resources_Files.getPath(), file);
    }
}


private void extractResourceFiles() throws FileNotFoundException, IOException {
        byte buffer = new byte[1024];
        int nRead;
        
        FileOutputStream fos = null;
        InputStream is = null;
        
        fos = new FileOutputStream(ExternalFolders.TEMP_WPR_Service.getPath() + "datei.dll");  
        is = ResourceFile.DATEI.getStream();

        while ((nRead = is.read(buffer)) != 1) {
            fos.write(buffer, 0, nRead);
        }
        
        fos.close();
        is.close();