Próbuję prosty index creation w pliku JAR. Jednak nie jest on z:Dodaj indeks do pliku JAR, odwołując się do zewnętrznego pliku JAR
$ jar -i /tmp/vtk-dicom/bin/lib/vtkdicom.jar
java.io.FileNotFoundException: /tmp/vtk-dicom/bin/lib/vtk.jar (No such file or directory)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.jar.JarFile.<init>(JarFile.java:154)
at java.util.jar.JarFile.<init>(JarFile.java:91)
at sun.tools.jar.Main.getJarPath(Main.java:1052)
at sun.tools.jar.Main.getJarPath(Main.java:1068)
at sun.tools.jar.Main.genIndex(Main.java:1084)
at sun.tools.jar.Main.run(Main.java:269)
at sun.tools.jar.Main.main(Main.java:1177)
Na oczywistej obejście jest prosta:
$ cp /usr/share/java/vtk.jar /tmp/vtk-dicom/bin/lib/
Jednak to jest brzydkie i błędów. Czy jest jakiś inny sposób, aby powiedzieć jar -i
gdzie szukać innej lokalizacji ? Potrzebuję przenośnego rozwiązania, które działa w systemie Windows/Linux/MacOSX.
uzyskać informacje manifest jest ustawiony na:
$ cat ./Source/java/manifest.txt
Class-Path: vtk.jar
o udzielenie informacji, czy ja go zmienić na:
$ cat ./Source/java/manifest.txt
Class-Path: /usr/share/java/vtk.jar
To daje nieco inny błąd:
$ jar -i /tmp/vtk-dicom/bin/lib/vtkdicom.jar
java.io.FileNotFoundException: /tmp/vtk-dicom/bin/lib/usr/share/java/vtk.jar (No such file or directory)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.jar.JarFile.<init>(JarFile.java:154)
at java.util.jar.JarFile.<init>(JarFile.java:91)
at sun.tools.jar.Main.getJarPath(Main.java:1052)
at sun.tools.jar.Main.getJarPath(Main.java:1068)
at sun.tools.jar.Main.genIndex(Main.java:1084)
at sun.tools.jar.Main.run(Main.java:269)
at sun.tools.jar.Main.main(Main.java:1177)
Dla numer:
$ java -version
java version "1.7.0_75"
OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-2)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
Proszę umieścić zawartość pliku MANIFEST –