Можно ли с помощью GNU classpath создать кроссплатформенный (Win32 и Linux) jar
Я думал, что gnu classpath - это просто версия библиотеки Java с открытым исходным кодом. Видимо это сильно связано с хост-системой? Это правда.
Например, возможно ли создать gpu classpath 'rt.jar' только с байт-кодом Java и каковы аргументы, чтобы использовать его в качестве библиотеки начальной загрузки?
2 ответа
Большая часть пути к классам GNU не зависит от платформы, но есть (и должен быть) определенный уровень виртуальной машины, который обрабатывает скрытые взаимодействия с виртуальной машиной и операционной системой хоста.
Classpath не предназначен для немедленного использования программистами Java. Требуется соответствующая реализация ряда классов Classpath VM* и так далее. Эти классы обычно предоставляются командой разработчиков целевой виртуальной машины.
Следует также отметить, что некоторые проекты JVM с открытым исходным кодом, которые ранее использовали Classpath, переносятся в / были перенесены в OpenJDK. Одна из причин заключается в том, что реализация Classpath, как правило, несовместима с эквивалентными JDK Sun. Отчасти это связано с подходом "чистого помещения", принятым командой Class-path (по юридическим причинам), а отчасти из-за продолжающегося нежелания Sun лицензировать наборы тестов JDK для проектов с открытым исходным кодом. (У Apache Harmony есть и последняя проблема.)
Java JRE для каждой платформы специально привязана к этой платформе и содержит собственный файл rt.jar. Проект classpath GNU был предназначен для создания бесплатной версии библиотек классов Java, но теперь это своего рода исторический артефакт, поскольку реализация Java теперь имеет открытый исходный код.