Команды из советов ниже, завернутые в пакетный скрипт Сохраните это как unpack.bat. Затем поместите его в каталог с извлеченными файлами jdk / jre.
@echo off
cd /d "%~dp0"
for /r %%x in (*.pack) do .\bin\unpack200 -r "%%x" "%%~dx%%~px%%~nx.jar"
В Спецификации языка Java указано, что длина идентификаторов не ограничена.
Однако на практике файловая система ограничивает длину имени результирующего файла.
Нет. Java не накладывает никаких ограничений на имя класса. Но если вы взаимодействуете с другими системами (например, JNI), лучше перестраховаться.
По-моему, 65535 символов. Из спецификации виртуальной машины Java:
Длина имен полей и методов, дескрипторы полей и методов, и другие постоянные строковые значения ограничено 65535 символами 16-битный элемент беззнаковой длины Структура CONSTANT_Utf8_info (§4.4.7). Обратите внимание, что ограничение на количество байтов в кодировке, а не на количество закодированных символов. UTF-8 кодирует некоторые символы, используя два или три байта. Таким образом, строки включение многобайтовых символов дополнительно ограничено.
здесь:
https://docs.oracle.com/javase/specs/jvms/se6/html/ClassFile.doc.html#88659
With JDK 1.5, the practical limit for class names on Windows XP with 255 -- longer names gave errors in the file system. This was the full name (directory+package+class).
I have not tried JDK 1.6 on Vista or windows 7, hopefully Sun fixed it to be the NTFS limit of 8000 or so.