الاختلافات عند تجميع جافا مع مترجم جنو ل Java بدلا من الشمس JDK

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

  •  18-09-2019
  •  | 
  •  

سؤال

أنا أعمل في مشروع مدرسي حيث أطلب مني استخدام مترجم جنو ل Java. لقد عملت دائما باستخدام Sun JDK الرسمية والآن أنا قلق بشأن الخلافات التي قد تعقد عملي.

أنا مهتم خصيصا بأي إصدار من Java هو الذي يدعمه أحدث مترجم GCJ

هل يمكن لشخص ما على بعض الضوء في الاختلافات بين واحد أو آخر؟

ملاحظة: لقد بحثت على Google لكنها فشلت في العثور على إجابة حديثة

هل كانت مفيدة؟

المحلول

نظرا لأن GCJ عبارة عن مترجم في قمة جنو Classpath، فأنت بحاجة إلى الاختلافات بين JDK & GNU ClassPath الرسمية. للشمس JDK 1.4 انظر هذه للشمس JDK 1.5 انظر هذا في حين أن.

نصائح أخرى

إذا كان يجب أن تصبح هذه الإجابة أعلى إجابة صوتية، فهذا يعني أنه يجب عليك أن تطلب من الأستاذ الخاص بك من فضلك إعادة النظر في السبب الذي يجعله يستخدم مثل هذه المنصة غير العادية. في العالم الحقيقي، يستخدم الناس الشمس JDKS في الغالب. لا أرى هذا التغيير كثيرا في المستقبل القريب. إنه منتج عالي الجودة، في معظمه.

هل يمكن أن يساعدك هذا حقا في التعلم؟

حسنا من الصفحة الرئيسية:

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 Compiler هو مترجم مبادر في وقت متأخر وليس مترجما بعيدا في الوقت المناسب مثل Sun's. لذلك هناك فرق واحد هناك. الصفحة الأولى هي القليل من الغامض والمراجع التي لديها بعض مرافق الترجمة الترجمة من البايت المدمجة في وقت تشغيل libgcj.

سأكون حذرا من أي مكتبة تغطي معظم المكتبات 1.4 و 1.5 المكتبات. إذا استهدفت 1.4 الخاص بك ربما بخير. 1.6 وربما كنت في عالم من الأذى.

ضع في اعتبارك إذا كان GCJ يمكن أن يفسر الملفات الفئة فقط، فقد يكون الأمر أبطأ بكثير يركض رمز غير ملتزم بدلا من مترجم Sun's Jit.

لقد واجهت اختلافات خفية في تاريخ تحليل آخر مرة نظرت فيها.

نظرا لأن GNU JVM لم يمر Java TCK، يجب أن تعامله بشكل أساسي كمنصة جديدة مع الحاجة إلى اختبار كامل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top