Различия при компиляции Java с помощью компилятора GNU для Java вместо Sun JDK

StackOverflow https://stackoverflow.com/questions/1690617

  •  18-09-2019
  •  | 
  •  

Вопрос

Я работаю над школьным проектом, в котором мне необходимо использовать компилятор GNU для Java.Я всегда работал с официальным Sun JDK, и теперь меня беспокоят различия, которые могут усложнить мою работу.

Меня особенно интересует, какая версия Java поддерживается последней версией компилятора GCJ.

Может ли кто-нибудь пролить свет на различия между одним и другим?

ПС:Я искал в Google, но не смог найти недавний ответ

Это было полезно?

Решение

Поскольку gcj — это компилятор поверх GNU Classpath, вам нужны различия между официальным JDK и GNU Classpath.Для SUN JDK 1.4 см. этот для SUN JDK 1.5 см. Вот этот вместо.

Другие советы

Если этот ответ станет ответом с наибольшим количеством голосов, это означает, что вам следует попросить своего профессора еще раз подумать, почему он заставляет вас использовать такую ​​необычную платформу.В реальном мире люди преимущественно используют Sun JDK.Я не вижу, чтобы это сильно изменилось в ближайшем будущем.По большей части это качественный продукт.

Может ли это действительно помочь вам учиться?

Ну с домашней страницы:

http://gcc.gnu.org/java/

Compiled applications are linked with the GCJ runtime, libgcj, which provides the core 
class libraries, a garbage collector, and a bytecode interpreter. libgcj can dynamically 
load and interpret class files, resulting in mixed compiled/interpreted applications. It 
has been merged with GNU Classpath and supports most of the 1.4 libraries plus some 1.5 
additions. 

С сайта GCJ.Похоже, что компилятор GNU — это опережающий компилятор, а не компилятор «точно в срок», как у Sun.Итак, есть одно отличие.Первая страница немного расплывчата и указывает на то, что в среду выполнения libgcj встроены некоторые средства интерпретации байт-кода.

Я бы с осторожностью относился к любой библиотеке, которая охватывает БОЛЬШИНСТВО библиотек версий 1.4 и 1.5.Если вы нацелены на 1.4, то, вероятно, все в порядке.1.6, и вас, вероятно, ждет мир страданий.

Имейте в виду, что если GCJ может только ИНТЕРПРЕТИРОВАТЬ файлы классов, то выполнение некомпилированного кода может быть намного медленнее, чем JIT-компилятор Sun.

В прошлый раз, когда я смотрел, я столкнулся с тонкими различиями в синтаксическом анализе даты.

Поскольку GNU JVM не прошла Java TCK, вы должны относиться к ней как к новой платформе, требующей полного тестирования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top