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




eclipse maven java-7 m2eclipse (21)

أنا تجميع مشروع في 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?

Answers

  1. على Eclipse IDE ، انتقل إلى Window > Preferences > Java > Installed JREs > وتحقق من JREs المثبتة . يجب أن يكون لديك إدخال مع JDK هناك.
  2. حدد التنفيذ Env كما هو موضح أدناه. انقر فوق موافق
  3. ثم انقر بزر الماوس الأيمن على مشروعك -> مخضرم -> تحديث المشروع

بالإضافة إلى ذلك ، قد تضطر إلى تغيير Maven JRE (راجع @ jlars62 answer) وهو كما يلي. Goto Run -> Run Configurations ، تحديد Maven Build I الذي تم تشغيله (من اللوحة اليمنى). ثم قمت بالنقر فوق علامة التبويب JRE وحدد الخيار الافتراضي لمساحة العمل 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. أغلق مربع حوار "الخصائص" عن طريق الضغط على "موافق".

إذا كنت تقوم بتشغيل الأمر 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"

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

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

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


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

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

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


في حالتي تم حلها عن طريق القيام بذلك:

انتقل إلى "تكوين Runtime" الخاص بك وقم بتكوين JRE الخاص بك إلى JDK.

لقد قمت بنسخ الإجابة فقط في حالة حذفها لسبب ما ، لكن المصدر موجود here


بالنسبة لي ، لم يعمل شيء حتى أجريت هذا التغيير على 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 بشكل صريح (كما هو مذكور أعلاه) قد أدى إلى الخدعة.


بالنسبة لي ، هذا هو بالضبط ما يشتكي عليه مخضروف الكسوف

لذلك ، اضغط على الزر Edit وقم بتغيير المسار إلى مجلد 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 والتمتع به! (على الأقل هذا ما فعلته)

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


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

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

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


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


جرب هذا.

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable> path to jdk \bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

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

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

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

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

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

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

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

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


في حالتي كان لي مسار متغير النظام لديه "C: \ ProgramData \ Oracle \ جافا \ javapath" الموقع.

في "C: \ ProgramData \ Oracle \ Java \ javapath" location java، javaw only there. لذلك أنا أتلقى نفس الخطأ.

بمجرد إزالة كافة الملفات في المجلد "C: \ ProgramData \ Oracle \ Java \ javapath" تم حل الخطأ.


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

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

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


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

عند تثبيت JDK ، يسألك المثبِّت عن المكان الذي تريد تثبيت الملفات فيه. بشكل افتراضي ، في Windows ، هذا شيء مثل C: \ Program Files \ Java \ jdk1.8.0_74 (أو أي إصدار تقوم بتثبيته).

ثم يطلب منك دليلاً لتثبيت JRE إلى ، والتي بشكل افتراضي شيء C: \ Program Files \ Java \ jre1.8.0_74.

لاحظ أن واحد هو jdk 1.8.0_74 والآخر هو jre 1.8.0_74

كنت أستعجل الأمور ، وأعتقد أن المثبت كان يسألني نفس السؤال مرتين ، فقم بتعيين موقعي JDK و JRE على D: \ devtools \ jdk \ jdk1.8.0_74 ، مما أدى إلى قيام المثبت بالاكتتاب فوق JDK باستخدام JRE. هذا أدى إلى (من بين أشياء أخرى) javac.exe المفقودة في صندوق JDK الخاص بي ، والخطأ نفسه الذي أبلغ عنه البروتوكول الاختياري هنا في جميع نسختي maven.


لقد واجهت نفس المشكلة ، الخطأ الذي ارتكبته هو أنني قمت بإضافة مسار jre فقط في المسار var ، وليس مسار jdk. عندما تمت إضافة مسار jdk إلى المسار وبناء مشروع maven الذي يعمل بشكل مثالي.


لدي حل

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

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

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


فقط قم بنسخ هذا الملف:

c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe

إلى Eclipse المجلد

* ملاحظة اختبار فقط لنظام التشغيل Windows





java eclipse maven java-7 m2eclipse