


Ladeproblem, wenn zwei JAR-Pakete genau denselben Paketnamen und Klassennamen enthalten
Der folgende Editor bietet Ihnen eine kurze Diskussion über das Ladeproblem zweier JAR-Pakete, die genau denselben Paketnamen und Klassennamen enthalten. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.
Zuerst werden wir es von der Präsentationsebene aus vorstellen und uns dann später mit den Prinzipien befassen.
1. Stellen Sie zunächst kurz vor, wie Maven JAR-Dateien zum Testen generiert
<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>Main.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> 配置了一个manifest标签来配置Main函数的入口。然后通过如下指令来实现打包。 mvn assembly:assembly
2. Passen Sie zwei JAR-Pakete an, die denselben Paketnamen und Klassennamen enthalten.
Dies hängt mit der Importreihenfolge des Exports zusammen. Nur der erste wird geladen und läuft einwandfrei.
3. Benutzerdefinierte JAR- und JDK-Pakete, die denselben Paketnamen und Klassennamen enthalten
Es hängt mit der Importreihenfolge des Exports zusammen . Ebenso wird nur das erste geladen, aber wenn Sie ein benutzerdefiniertes JAR laden und ausführen, wird ein Fehler gemeldet. Das Laden von JDK ist normal.
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { // First, check if the class has already been loaded Class<?> c = findLoadedClass(name); if (c == null) { long t0 = System.nanoTime(); try { if (parent != null) { c = parent.loadClass(name, false); } else { c = findBootstrapClassOrNull(name); } } catch (ClassNotFoundException e) { // ClassNotFoundException thrown if class not found // from the non-null parent class loader } if (c == null) { // If still not found, then invoke findClass in order // to find the class. long t1 = System.nanoTime(); c = findClass(name); // this is the defining class loader; record the stats sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0); sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1); sun.misc.PerfCounter.getFindClasses().increment(); } } if (resolve) { resolveClass(c); } return c; } }
4. Allgemeine Befehle für MVN-JAR-Paketkonflikte
MVN-Abhängigkeit: analysieren, mvn dependency:tree
Das obige ist der detaillierte Inhalt vonLadeproblem, wenn zwei JAR-Pakete genau denselben Paketnamen und Klassennamen enthalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

