Wie Kombinieren Sie Mehrere Gläser in Ein?

Habe ich gelesen, so viele Artikel/Erklärungen auf dieser und verbrachte auch viele Stunden, aber alles ist entweder zu breit oder zu spezifisch.

Diese Frage wirklich nur ein Applet, den ich gemacht habe. Es enthält eine Klasse, und benötigt 2 andere Jar-Bibliotheken. Ich habe diese in die Projekte (mehrere Projekte, weil ich versucht habe, dieses in Netbeans und Eclipse...es ist einfach zu erstellen Sie eine Klasse-Projekt). Der Punkt ist, dass meine HTML - /web-Projekt sollte nicht zu tun haben mit mehr als einer Jar-Datei oder verweisen Sie. Es ist keine komplizierte applet/Projekt entweder.

Ursprünglich, habe ich es in Netbeans. Hat es das main-Paket, und nachdem Sie die 2 Gläser werden Sie in einem "Bibliotheken" - Bereich ("Ressourcen" - Ordner). Nach dem Bau es, Netbeans erstellt ein Jar für meine one-Paket/Klasse, und stellt dann die 2 anderen Bibliotheken im "lib" - Verzeichnis neben es. Ich würde es gerne in einem, ausführbares Jar. Von den vielen Dingen, die ich durchgesehen haben, habe ich versucht, indem Sie den folgenden in build.xml:

<target name="YourBigJar" depends="-post-jar">
  <jar destfile="dist/BigJar.jar">
    <zipfileset src="dist/cxapplet.jar"/>
    <zipfileset src="resources/dpotapi.jar"/>
    <zipfileset src="resources/dpotjni.jar"/>
  </jar>
</target>

Aber es produziert nichts. Ich habe diese aus NetBeans - bereitstellen von all in one jar . Ich nicht wissen/verstehen, wie build.xml also ich wäre nicht überrascht, wenn etwas schief geht (offensichtlich), aber ich bekomme kein error/warning messages.

Wenn ich es in Eclipse, es effektiv kombiniert, aber wenn ich die Jar in meinem aktuellen web-Projekt, Sie sagt, Sie nicht finden können, die Klassen aus den anderen 2 Gläser. Ich würde nicht verstehen, wie es zu beheben, aber es ist ein Classpath-problem? In Eclipse habe ich ein neues Verzeichnis namens "lib", und stellen Sie die Gläser in es. Dann habe ich der rechten Maustaste auf das Projekt, gehen Sie auf "Java Build Path" und fügen Sie die Gläser, auch eine überprüfung unter "Order and Export" - Registerkarte. Von den Dingen, die ich gelesen habe, ich mit der rechten Maustaste auf das Projekt, wählen Sie "Export", wählen Sie "Jar", deaktivieren Sie die ".classpath" und ".Projekt-Dateien" nur prüfen "Export generated class files and resources", und dann lassen Sie es generieren der manifest-Datei. Wie ich schon sagte, dies erzeugt eine Jar -, aber seine Inhalte sind mein Paket und dann noch ein "lib" Verzeichnis, das die 2 anderen Gläser. Das Manifest ist da, aber es ist ziemlich leer, und nicht auf alle Dateien (nicht sicher, ob das wichtig ist). Wenn ich es in mein web-app sagt, dass das applet nicht finden können, die anderen Klassen.

Es scheint so einfach - ein Paket/Klasse, zwei externe Jars...kombinieren Sie in einem Glas gebaut für die Verteilung als ein applet. Irgendwelche Ideen?

UPDATE:

Seit wir begonnen haben, mit Maven, jemand sah in einem Maven-plugin. So landeten wir erstellen ein neues Projekt, um das Haus applet (da es die projektübergreifend genutzt) und verwendet diese in unserem pom.xml am Ende:

<build>
  <resources>
    <resource>
      <directory>${basedir}/applet</directory>
      <excludes>
        <exclude>codesignstore</exclude>
      </excludes>
    </resource>
    <resource>
      <directory>${basedir}/src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2-beta-5</version>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <finalName>cxapplet</finalName>
        <archive>
          <index>true</index>
          <manifest>
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
          </manifest>
        </archive>
        <appendAssemblyId>false</appendAssemblyId>
      </configuration>
      <executions>
        <execution>
          <id>make-my-applet-jar</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jarsigner-plugin</artifactId>
      <version>1.2</version>
      <executions>
        <execution>
          <id>sign</id>
          <goals>
            <goal>sign</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <keystore>${basedir}/applet/codesignstore</keystore>
        <alias>codesigncert</alias>
        <storepass>HIDDEN</storepass>
        <keypass>HIDDEN</keypass>
      </configuration>
    </plugin>
  </plugins>
</build>

Und es war schön, weil es uns erlaubt, zu verwenden, unseren Code Signing-Zertifikat automatisch signieren zu.

  • "Der Punkt ist, dass meine HTML - /web-Projekt sollte nicht zu tun haben mit mehr als einem Jar" ist Es trivial, um es zu tun, damit der browser damit umgehen kann. "Irgendwelche Ideen?" Bereitstellen der Gläser der üblichen Weise (das hat Vorteile im Vergleich zu Ihrer aktuellen Strategie) & sparen Sie Zeit.
  • Es ist besser, Sie stellen Abhängigkeiten von einem jar zu dem anderen.Viele jar machen tools macht Ihre Arbeit einfach.
  • Ich bin mir nicht sicher, was du meinst, aber das ist, warum ich versuche, Netbeans' und Eclipse build-tools, von denen ich dachte, es tun würde, um dies zu erreichen.
  • Also mein Hauptgrund für posiert diese Frage ist, weil ich habe Probleme beim anmelden die Gläser und den browser erkennen diese. Ich weiß, der erste Schritt sollte habe um das problem zu identifizieren mit der Unterzeichnung, sondern alles in den Topf, wenn ich zu extrahieren und schauen Sie durch es, sieht gut aus, so dass ist, warum ich bin ein wenig besorgt, mit mehreren Gläsern. Nicht sicher, ob das die eigentliche Ursache, aber ich dachte, es könnte besser organisiert und die möglicherweise funktionieren, wenn ich alles verbinden
  • Ich spreche nicht von der IDE, aber das jar-making-tool,google es
InformationsquelleAutor Ian | 2013-01-16
Schreibe einen Kommentar