Externe Bibliotheken modularisieren

memo1990

Aktives Mitglied
Hallo liebes Java-forum.org-Community,

ich möchte mein Programm modular (Jigsaw) ausliefern. Da ich aber externe Bibliotheken, wie JavaMail und JAF verwende, weiß ich nicht wie die mit einbinde. Denn die Bibliotheken sind nicht als Module veröffentlicht (kein module-info.class). Wie gehe ich da vor am besten vor?

MfG
memo1990
 

memo1990

Aktives Mitglied
Ich habe mich weiter eingelesenen und behandele die externe Bibliothek jetzt als Automatic Module. Wenn ich aber mit jlink mein Programm linken möchte, bekomme ich folgende Fehlermeldung:

Code:
Error: automatic module cannot be used with jlink: java.mail from file:///C:/Users/Username/Desktop/Project/libs/javax.mail-1.6.2.jar
 

memo1990

Aktives Mitglied
Hallo,

danke @mihe7. Ich werde es mir mal anschauen. Vor allem der Thread in Stackoverflow. Denn man hat mehrere externe Libs die man, zusammen mit der Anwendung, modularisiert aushändigen möchte.
 

memo1990

Aktives Mitglied
Hallo liebes Java-Forum,

ich muss das Thema nochmal hervorheben. Ich bekomme es nicht hin für die Drittanbieter-Bibliotheken ein module-info.java zu kompilieren.

Ich habe die JAR entpackt, die module-info.java mit jdeps generiert und in das Root-Verzeichnis gelegt. Wenn ich z.B. die JAF (JavaBeans Activation Framework) mit dem generierten Module Descriptor kompilieren möchte, bekomme ich folgende Fehlermeldung:

Code:
javac -d out --module-source-path mods --module activation
mods\activation\module-info.java:7: error: package is empty or does not exist: com.sun.activation.registries
    exports com.sun.activation.registries;
                              ^
mods\activation\module-info.java:8: error: package is empty or does not exist: com.sun.activation.viewers
    exports com.sun.activation.viewers;
                              ^
mods\activation\module-info.java:9: error: package is empty or does not exist: javax.activation
    exports javax.activation;
                 ^
3 errors

Hier noch das Verzeichnissbaum vom Module:

Code:
C:.
│   module-info.java
│
├───com
│   └───sun
│       └───activation
│           ├───registries
│           │       LineTokenizer.class
│           │       LogSupport.class
│           │       MailcapFile.class
│           │       MailcapParseException.class
│           │       MailcapTokenizer.class
│           │       MimeTypeEntry.class
│           │       MimeTypeFile.class
│           │
│           └───viewers
│                   ImageViewer.class
│                   ImageViewerCanvas.class
│                   TextEditor.class
│                   TextViewer.class
│
├───javax
│   └───activation
│           ActivationDataFlavor.class
│           CommandInfo.class
│           CommandMap.class
│           CommandObject.class
│           DataContentHandler.class
│           DataContentHandlerFactory.class
│           DataHandler$1.class
│           DataHandler.class
│           DataHandlerDataSource.class
│           DataSource.class
│           DataSourceDataContentHandler.class
│           FileDataSource.class
│           FileTypeMap.class
│           MailcapCommandMap.class
│           MimeType.class
│           MimeTypeParameterList.class
│           MimeTypeParseException.class
│           MimetypesFileTypeMap.class
│           ObjectDataContentHandler.class
│           SecuritySupport$1.class
│           SecuritySupport$2.class
│           SecuritySupport$3.class
│           SecuritySupport$4.class
│           SecuritySupport$5.class
│           SecuritySupport.class
│           UnsupportedDataTypeException.class
│           URLDataSource.class
│
└───META-INF
        mailcap.default
        MANIFEST.MF
        mimetypes.default
        SUN_MICR.RSA
        SUN_MICR.SF

Was mache ich falsch?

MfG memo1990
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben