Sun JDK 대신 Java용 GNU 컴파일러를 사용하여 Java를 컴파일할 때의 차이점

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

  •  18-09-2019
  •  | 
  •  

문제

저는 Java용 GNU 컴파일러를 사용해야 하는 학교 프로젝트를 진행하고 있습니다.저는 항상 공식 Sun JDK를 사용하여 작업해 왔지만 이제는 작업을 복잡하게 만들 수 있는 차이점이 걱정됩니다.

최신 GCJ 컴파일러에서 지원하는 Java 버전이 무엇인지 특히 관심이 있습니다.

누군가 둘 사이의 차이점을 밝힐 수 있습니까?

추신:Google에서 검색했지만 최근 답변을 찾지 못했습니다.

도움이 되었습니까?

해결책

GCJ는 GNU 클래스 경로 위에있는 컴파일러이므로 공식 JDK & GNU ClassPath의 차이가 필요합니다. Sun JDK 1.4 참조 이것 Sun JDK 1.5는 참조하십시오 이 하나 대신에.

다른 팁

이 답변이 가장 높은 투표 답변이되어야한다면, 교수에게 왜 그런 특이한 플랫폼을 사용하는지 재고하도록 요청해야한다는 것을 의미합니다. 현실 세계에서 사람들은 주로 태양 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과 같은 JIT(Just-In-Time) 컴파일러가 아닌 AOT(Ahead-of-Time) 컴파일러인 것처럼 보입니다.그래서 바로 거기에 한 가지 차이점이 있습니다.첫 페이지는 약간 모호하며 libgcj 런타임에 일부 바이트 코드 해석 기능이 내장되어 있음을 참조합니다.

나는 1.4와 1.5 라이브러리의 대부분을 다루는 라이브러리에 주의할 것입니다.1.4를 목표로 삼는다면 아마도 괜찮을 것입니다.1.6 그리고 당신은 아마도 상처받은 세상에 있을 것입니다.

GCJ가 클래스 파일만 해석할 수 있다면 Sun의 JIT 컴파일러보다 컴파일되지 않은 코드를 실행하는 것이 훨씬 느릴 수 있다는 점을 명심하세요.

나는 지난번에 내가 보았을 때 날짜 구문 분석에서 미묘한 차이를 겪었다.

GNU JVM이 Java TCK를 통과하지 않았으므로 기본적으로 전체 테스트가 필요한 새로운 플랫폼으로 취급해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top