java - تحميل - لا يوجد مترجم في هذه البيئة. ربما كنت تعمل على JRE بدلا من JDK؟




java windows 7 (16)

أنا تجميع مشروع في Eclipse باستخدام m2eclipse. أنا وضعت مسار JDK في Eclipse مثل هذا:

Windows-->preferences-->installed jres--> jdk1.7.xx  path

لكن هذا يظهر خطأ

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE    rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-   plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

انتقل إلى windows -> تفضيلات -> Java -> تثبيت JREs

قد يتم إضافة jre بالفعل

انقر فوق Add -> Standard VM -> Next -> Directory

وتصفح لـ JDK في مسار حالتي كان C:\Program Files\Java\jdk1.8.0_111

ثم اضغط على الانتهاء.

سترى نافذة مثل هذه

اختر JDK -> Apply -> Ok

وانت انتهيت.


  1. تعيين JAVA_HOME على الجذر JDK - مطلوب في حالة تشغيل سطر الأوامر أو maven (google لهذا المتغير)
  2. في خصائص المشروع في قسم Java Compiller حدد JDK المطلوب - إذا قمت بتشغيل مباشرة من الكسوف

أنا فقط أهدر 3 ساعات مع هذه المشكلة حتى تمكنت من جعلها تعمل. كان عندي هذا الخطأ في Eclipse Terminal عند إصدار أمر ترجمة mvn:

لا يوجد مترجم في هذه البيئة. ربما كنت تعمل على JRE بدلا من JDK؟

لذا قرأت هنا أنه يجب علي عمل متغير نظام جديد يسمى JAVA_HOME ووجهه نحو مجلد التثبيت jdk. ومع ذلك ، فقد أدى ذلك إلى حدوث خطأ آخر:

لم يعد خيار المصدر 1.5 مدعومًا. استخدم 1.6 أو في وقت لاحق

لا يمكن العثور على حل لهذا واحد حتى ...

لذا فإن الإصلاح لجعل كل شيء تختفي هو تثبيت Java SE Development Kit 8! كنت أستخدم 9 التفكير في أنه إذا كان الأحدث يجب أن يكون أفضل ...

على أي حال...

  1. قم بإزالة جميع إصدارات java من جهاز الكمبيوتر الخاص بك
  2. قم بتثبيت JDK8 من هنا: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. ثم تحديد القيمة البيئية لنظام JAVA_HOME - البرنامج التعليمي هنا: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. إعادة تشغيل Eclipse والتمتع به! (على الأقل هذا ما فعلته)

معربا عن أمله في هذا ينقص بعض المتسكع الفقراء من بعض المتاعب.


إذا كنت تقوم بتشغيل الأمر Maven من cmd ، فتأكد من تعيين مسار jdk قبل تشغيل الأمر. في حالتي ، قمت بإنشاء ملف .bat يحتوي على ما يلي:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"

بالإضافة إلى الإجابة أعلاه ، يمكن أن أقول أن مجرد محاولة تشغيل Maven من المحطة (خارج Eclipse). بهذه الطريقة ، إذا كانت مبنية من الخارج ولكن ليس في Eclipse ، يمكنك أن تفهم أن المشكلة يجب أن تكون في Eclipse.


بالنسبة لي ، لم يعمل شيء حتى أجريت هذا التغيير على pom.xml:

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

الملاحظات الأخرى

استطعت أن أرى أن M2e كان ينفذ في JRE ، وليس JDK. لا شيء قمت بتغيير هذا ، بما في ذلك إضافة هذا إلى eclipse.ini:

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

في النهاية لم أتمكن من تنفيذ m2e في JDK ، ولكن إعداد برنامج Java compiler بشكل صريح (كما هو مذكور أعلاه) قد أدى إلى الخدعة.


بالنسبة لي كان JRE في متغير بيئة PATH قبل مسار JDK

  1. C: \ ProgramData \ أوراكل \ جافا \ javapath
  2. C: \ الحياة الفطرية \ jdk1.8.0_151 \ بن

لذا قمت بإزالتها 1. من المحتمل أن يؤدي استبدالها إلى إصلاحها أيضًا.


بديل إذا لم يعمل رد jaipster هو الذهاب إلى:
نافذة> تفضيلات> Java> تثبيت JREs

ثم لتحرير jre بحيث يشير إلى jdk وليس jre (تم إرسال jre home في محرر حزمة jre)

هذا العمل بالنسبة لي.


حاولت كل ما سبق ، ومع ذلك ، لا يزال الحصول على نفس رسالة الخطأ.

في حالتي ، تم استخدام JRE الفعلي بشكل غير صحيح كمكتبة JRE System في مسار الإنشاء الخاص بالمشروع والذي كان من الواضح أنه تجاوز كل تلك الإعدادات الأخرى التي تمت مناقشتها هنا.

إذا كان الأمر كذلك في حالتك ، فجرب ما يلي:

  1. افتح المكتبات الخاصة بالمشروع من مسار بناء Java: انقر بزر الماوس الأيمن فوق "Project> Build Path> Configure Build Path ..." وحدد علامة التبويب "Libraries".
  2. حدد إدخال "مكتبة نظام JRE" واضغط على "إزالة".
  3. ضرب "إضافة مكتبة ...".
  4. معالج انبثاق. حدد "مكتبة نظام JRE" واضغط على "التالي>".
  5. الآن حدد JDK الصحيح (في حالتي "JREK الافتراضي لـ Workspace" ، الذي قمت بتكوينه باستخدام JDK).
  6. إغلاق المعالج عن طريق ضرب "إنهاء".
  7. أغلق مربع حوار "الخصائص" عن طريق الضغط على "موافق".

فعلت التغيير التالي وعملت لي. نأمل أن يساعد شخص ما.


كنت أتلقى هذا الخطأ عندما أحاول إنشاء مخلوق من داخل الكسوف.

بالنسبة لي ، كانت الإجابة هي " Run - " Run Configurations ، تحديد " Maven Build كنت قيد التشغيل (من اللوحة اليسرى). ثم قمت بالنقر فوق علامة التبويب JRE وحدد الخيار Workspace default JRE


لدي حل

الحل الأكثر شيوعًا لهذه المشكلة هو تغيير موقع jdk كـ " JREs المثبتة" بدلاً من موقع JRE ولكن ذلك لم يحل مشكلتي هذه المرة.

لذلك فعلت أدناه لحل المشكلة. قم بتوسيع علامة التبويب JRE المثبتة وسوف تجد علامة تبويب بيئات التنفيذ .

انقر فوق بيئة التنفيذ المفضلة لديك. في حالتي كان JAVASE-1.8 . هناك يظهر 2 خيارات. JDK و JRE . حدد JDK هناك ويتم حل المشكلة.


لقد واجهت نفس المشكلة أثناء محاولة إنشاء ملف jar من تطبيق المشروع الخاص بي باستخدام mvn clean install ، على الرغم من أن التطبيق كان يعمل بشكل جيد أثناء التشغيل من Eclipse.

كانت المشكلة ، في الحقيقة ساذجة للغاية ، أنني لم أقم بتعيين متغير بيئة التشغيل JAVA_HOME . كل ما كان علي فعله هو تعيين متغير بيئة JAVA_HOME على دليل JDK ، تأكد من أنه ليس حتى "\ bin" وبدون منقوطة "؛" .

كيف فهمت أنها كما يلي:

عمل التطبيق بشكل جيد في Eclipse كما كانت JRE System Library تشير إلى JRE داخل مجلد JDK بدلاً من مجلد JRE الخارجي بدون JDK. [كما هو موضح جيدًا في الإجابات الأخرى]

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


هل أنت في عداد المفقودين أي بناء مخضرم.

بصرف النظر عن التغييرات JRE أعلاه. ما زلت أواجه مشكلة مماثلة. كنت أفتقد JUnit التبعية بعد إضافة أنها تعمل بشكل جيد.

آمل أن هذا سوف يساعد.


هناك العديد من الإجابات بخصوص هذا السؤال ولكن كلها مرتبطة بتكوين المسار الصحيح لـ JDK ، ولكن مع JRE فقط يمكننا حل هذه المشكلة.

نحتاج فقط إلى استخدام تجميع النشر لتكوين مسار ملف الحرب المعبأ الخاص بمشروع Java EE ثم إعادة تشغيل maven-install.

خطوات للاستفادة من تجميع النشر:

  1. انقر بزر الماوس الأيمن على مشروع JEE EE -> انقر فوق Properties (خصائص) -> click (انقر فوق Deployment Assembly)

  2. انقر على زر إضافة -> انقر على الأرشيف من نظام الملفات -> انقر فوق التالي -> انقر على إضافة -> اذهب إلى دليل .m2 \ respository وابحث عن ملف الحرب الذي تم إنشاؤه -> حدد ملف الحرب -> انقر على زر فتح -> انقر على تطبيق -> موافق

  3. انقر بزر الماوس الأيمن على المشروع -> انقر على Maven Install تحت Run As

سيؤدي ذلك إلى بناء مشروعك بنجاح ، دون أي خطأ في المحول البرمجي.

نأمل أن يحل هذا المشكلة دون JDK.


هناك العديد من الخيارات لتحديدها.

الخطوات: مباشرة على المشروع في مستكشف المشروع انتقل إلى Run-> Run Configuration -> Click Maven Build -> Click on your build config / or create a new config. سترى النافذة على أنها اللقطة المقدمة أدناه ، انقر فوق علامة التبويب JRE هناك.

ترى أن لديك 3 خيارات 1) مساحة العمل الافتراضي JRE 2) بيئة التنفيذ 3) البديل JRE 1) تعيين مساحة العمل الافتراضي JRE من قائمة 'Window' في الأعلى -> التفضيلات -> Java -> JREs المثبتة - هنا يمكنك إضافة jdk الخاص بك 2) يمكن تعيين jdk بيئة التنفيذ في pom.xml كما ذكرهاksnortum

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <fork>true</fork>
            <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
        </configuration>
    </plugin>
</plugins>

3) يمكن استخدام JRE البديل لتحديد jdk من الدليل الخاص بك





m2eclipse