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

Printed on: April 18, 2024 at 06:04 o'clock

Mitglied: 132895
132895 May 03, 2017 updated at 13:28:51 (UTC)
Goto Top
Als Resource im Projekt einbinden kompilieren und via Code extrahieren:
http://stackoverflow.com/questions/11472408/extracting-a-file-from-the- ...

Gruß
Member: reissaus73
reissaus73 May 11, 2017 at 09:34:38 (UTC)
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 May 11, 2017 updated at 09:55:37 (UTC)
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/
Member: reissaus73
reissaus73 May 11, 2017 at 12:58:39 (UTC)
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();