Diferenças quando compilação Java com GCJ em vez do Sun JDK
-
18-09-2019 - |
Pergunta
Eu estou trabalhando em um projeto da escola onde eu sou obrigado a usar o GCJ. Eu sempre trabalhei com o oficial Sun JDK e agora estou preocupado com diferenças que possam complicar meu trabalho.
Eu estou especialmente interessado em qual versão do Java é o único suportado pela mais recente GCJ compilador
Alguém poderia lançar alguma luz nas diferenças entre um ou o outro?
PS: Eu procurei no google, mas falhou em encontrar uma resposta recente
Outras dicas
Se esta resposta deve tornar-se a maior resposta votado, isso significa que você deve perguntar ao seu prof para agradar a reconsiderar por que ele está fazendo você usar uma plataforma tão incomum. No mundo real, as pessoas usam Sun JDKs predominantemente. Eu não vejo isso mudando muito no futuro próximo. É um produto de qualidade, para a maior parte.
Pode isso realmente estar ajudando você a aprender?
Bem dela é home page:
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.
Do site do GCJ. Parece que o compilador GNU é um compilador antes-do-tempo e não um compilador just-in-time como Sun. Portanto, há uma diferença aí. A primeira página é um pouco vago e referências que ele tem alguns recursos de interpretação byte-code construídos no tempo de execução libgcj.
Eu seria cauteloso em qualquer biblioteca que cobre a maior parte dos 1,4 e 1,5 bibliotecas. Se você segmentar 1,4 seu provavelmente bem. 1.6 e provavelmente você está no para um mundo de dor.
Tenha em mente se GCJ só pode interpretar arquivos de classe, em seguida, que poderia ser muito mais lenta a execução de código não compilado do que compilador JIT do Sol.
Eu tenho que correr em diferenças sutis na data parsing última vez que olhei.
Como o gnu JVM não passou no Java TCK você deve, basicamente, tratá-la como uma nova plataforma com o teste do necessário.