Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
NetBeansBuildprozess inkludiert nicht die Classpath-Pakete (Java Ant)
ich hab da grad ein kleines Problem. Und zwar wollte ich meinen Webservice den ich mit Netbeans geschrieben habe (und der auch einwandfrei funktioniert, wenn ich ihn mit Netbeans starte) gerade zusammenbauen und dann testweise einmal über die Konsole ausführen und das Ding crashed instant mit folgender Fehlermeldung:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/ws/Service
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at asekvwebservice.ASEKVServiceImpl.<init>(ASEKVServiceImpl.java:74)
at asekvwebservice.ASEKVWebservice.main(ASEKVWebservice.java:47)
Caused by: java.lang.ClassNotFoundException: javax.xml.ws.Service
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 11 more
Unter anderem Fehlt im dist-Verzeichnis auch der komplette Lib-Ordner, der unter Netbeans 8 in Verbindung mit Java SE 1.8 noch automatisch hinzugefügt wurde.
Ich hab die Entsprechenden Klassen, die nachgeladen werden müssen ganz normal in den Properties unter Libraries->Compile->Classpath eingetragen und über Netbeans werden die auch ganz normal gezogen. Allerdings werden die beim Buildprozess scheinbar einfach ignoriert.
Nein das funktioniert nicht. In dieser Anleitung geht es darum die Files alle in die Jar reinzupacken, anstatt ein lib-Verzeichnis mitzuschleppen. Mein Problem ist, dass er das lib-Verzeichnis überhaupt nicht erst erstellt.
In Nebeans 11 muss man anders vorgehen, musste ich selbst erst rausfinden.
Du wirst feststellen, dass nicht nur der lib-Ordner fehlt, in deiner Jar ist auch das Manifest nicht komplett ausgefüllt, der Classpath fehlt.
Netbeans 11 unterscheidet zwischen Build und Release.
Um dein komplettes Release-Verzeichnis zu kriegen, wähle im Projektmenü "Package as" und dann "Image Only".
Das erstellt das Verzeichnis in der Form, die du erwartest, außerdem noch ein Unterverzeichnis "bundles", in dem dann eine ausführbare Version inklusive Runtime und ausführbarer Datei.
Diese nutze ich jedoch nicht, da er die KOMPLETTE Java Runtime (200 MB) mit reinpackt, anstatt der benötigten 32 MB. Das kann man wohl umgehen, indem man module-info verwendet, das hab ich aber noch nicht ausprobiert. Außerdem ist da noch der Wurm drin, da er die Main-Klasse nicht findet.
Ich erstell Runtime selbst (per "jdeps" und "jlink") und lass die .exe mit "launch4j" erstellen.