Natknąłem się na następujący problem - kiedy tworzę plik .jar
z więcej niż 65k wpisów, java narzeka "Nieprawidłowy lub uszkodzony plik jar". Przykład:Dlaczego java narzeka na pliki jar z dużą liczbą wpisów?
$ # in fresh dir
$ for i in {1..70000}; do touch $i; done
$ jar cf app.jar {1..70000}
$ java -jar app.jar
Error: Invalid or corrupt jarfile app.jar
Ale jeśli mogę użyć nieco mniej plików, to działa:
$ jar cf app.jar {1..60000}
$ java -jar app.jar
no main manifest attribute, in app.jar
Słyszałem, że tam był pliki 65k ograniczenia w starym formacie .zip
plików, ale Java 7 należy użyć ZIP64 domyślnie już. Dlaczego to się dzieje? Czy istnieje sposób, aby to naprawić?
słoiku jest odmianą Java ZIP. Chociaż może to naprawić pewne problemy, może to być przyczyną innych ulepszeń. Sugeruję, żebyś nie umieszczał kilku plików w JAR-ie;) –
@PeterLawrey - Tak, podział rzeczy pomiędzy kilka mniejszych plików .jar jest oczywistym obejściem, ale jest bardzo niezgrabny. W każdym razie nie jest normalne, aby mieć tak niski limit ilości plików. Może jest już otwarty błąd na ten temat? – Rogach
Mam nadzieję, że tak, ale zawsze możesz się zalogować, jeśli nie możesz go znaleźć. –