W tym środowisku nie jest dostępny żaden kompilator. Może biegasz na JRE zamiast na JDK?

Kompiluję projekt w Eclipse używając m2eclipse. Ustawiłem ścieżkę JDK w Eclipse TAK:

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

Ale To pokazuje błąd

[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?
Author: Peter Mortensen, 2013-10-29

26 answers

  1. na Twoim Eclipse IDE, wejdź w Okno > Preferencje > Java > zainstalowane JREs > i sprawdź swoje zainstalowane JREs. Powinieneś mieć tam wpis z JDK.
  2. Wybierz ENV wykonania, jak pokazano poniżej. Klik OK
  3. Then Kliknij prawym przyciskiem myszy o Twoim projekcie -> Maven -> Aktualizacja Projekt

Dodatkowo, być może będziesz musiał zmienić Maven JRE (zobacz odpowiedź @ jlars62), co wygląda następująco. Goto Run - > Uruchom konfiguracje, wybierając Maven Build, z którego korzystałem (z lewego panelu). Następnie kliknąłem kartę JRE i wybrałem opcję workspace default JRE

Tutaj wpisz opis obrazka

 741
Author: jaipster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-04 05:24:41

Dla mnie, to jest dokładnie to, co Maven eclipse narzeka

Tutaj wpisz opis obrazka

Więc naciskam przycisk Edit i zmieniam ścieżkę do folderu JDK, potem czyszczę projekt i wszystko zaczyna działać

 101
Author: Thai Tran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-25 09:13:05

Dla mnie nic nie działało, dopóki nie dokonałem tej zmiany w moim 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>

Inne Uwagi

Widzę, że M2E wykonuje w JRE, a nie w JDK. Nic tego nie zmieniłem, włączając w to dodanie tego do eclipse.ini:
-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

W końcu nigdy nie dostałem M2E do wykonania w JDK, ale ustawienie kompilatora Javy jawnie (jak wyżej) załatwiło sprawę.

 88
Author: ksnortum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-01 00:32:10
  1. Ustaw zmienną środowiskową JAVA_HOME w folderze głównym JDK-wymagana jeśli uruchomisz linię komend lub maven (google dla tej zmiennej)
  2. w properties projektu w sekcji Java Compiler wybierz wymagane JDK-jeśli uruchamiasz bezpośrednio z eclipse
 70
Author: msangel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-12 22:01:05

W moim przypadku zostało to rozwiązane przez zrobienie tego:

Przejdź do "Runtime Configuration" i skonfiguruj JRE na JDK.

Wybierz odpowiedni JDK dla swojego środowiska wykonawczego

Wybierz domyślne JRE

Skopiowałem odpowiedź na wypadek gdyby z jakiegoś powodu została usunięta, ale źródło jest tutaj

 32
Author: Eduardo Dennis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:44

Otrzymywaĺ 'em ten bĹ' Ä ™ d, gdy prăłbowaĺ ' em zbudowaÄ ‡ Mavena z poziomu eclipse.

Dla mnie odpowiedź miała być Run -> Run Configurations, wybierając Maven Build I was running (z lewego panelu). Następnie kliknąłem zakładkę JRE i wybrałem opcję Workspace default JRE

 29
Author: jlars62,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-30 18:15:14

Przejdź do windows -> Preferences -> Java - > Installed JREs

Może być jre jest już dodany Tutaj wpisz opis obrazka

Kliknij Add -> Standard VM -> Next -> Directory

I przeglądaj dla JDK w moim przypadku ścieżka była C:\Program Files\Java\jdk1.8.0_111

Następnie kliknij na Zakończ.

Zobaczysz okno w ten sposóbTutaj wpisz opis obrazka

Wybierz JDK - > Zastosuj - > Ok

I jesteś skończony.
 23
Author: Ishu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-06 16:43:22

Alternatywą, jeśli odpowiedź nie zadziała, jest przejście do:
Okno > Preferencje > Java > Installed JREs

Następnie edytować jre tak, że wskazuje na jdk, a nie jre (Dom jre złożony w edytorze pakietów jre)

To mi pomogło.

 9
Author: brunoais,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-17 10:54:32

Próbowałem wszystkich powyższych, jednak nadal otrzymuję ten sam komunikat o błędzie.

W moim przypadku rzeczywisty JRE został nieprawidłowo użyty jako Biblioteka systemowa JRE w ścieżce budowania specyficznej dla projektu, co oczywiście nadpisywało wszystkie inne ustawienia omówione tutaj.

Jeśli tak jest w Twoim przypadku spróbuj:

  1. Otwórz biblioteki specyficzne dla projektu Java Build Path: kliknij prawym przyciskiem myszy "Project > Build Path > Configure Build Path..."i wybierz zakładkę "Biblioteki".
  2. wybierz pozycję "Biblioteka systemowa JRE" i naciśnij "Usuń".
  3. Hit " Dodaj Bibliotekę...".
  4. pojawia się kreator. Wybierz "JRE System Library" i naciśnij " Next >".
  5. Teraz wybierz poprawny JDK (w moim przypadku "workspace default JRE", który skonfigurowany przy użyciu JDK).
  6. Zamknij kreatora, naciskając "Zakończ".
  7. Zamknij okno "Właściwości", naciskając "OK".
 9
Author: Sir Hackalot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-06 11:16:22

Jeśli uruchamiasz polecenie Maven z cmd, Upewnij się, że ustawiłeś ścieżkę jdk przed uruchomieniem polecenia. W moim przypadku utworzyłem plik .bat zawierający:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"
 6
Author: Mahder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-26 10:17:04

Istnieje kilka opcji do określenia.

Kroki: Prawo na projekt w project explorer Przejdź do Uruchom - > Uruchom konfigurację - > kliknij Maven Build - > kliknij konfigurację kompilacji / lub utwórz nową konfigurację. Zobaczysz okno jako podaną migawkę poniżej, Kliknij na kartę JRE tam.

Widzisz, że masz 3 opcje 1) domyślne JRE w przestrzeni roboczej 2) Środowisko wykonawcze 3) Alternatywne JRE Tutaj wpisz opis obrazka 1) domyślne JRE w przestrzeni roboczej jest ustawiane z menu "Okno" na górze - > Preferencje - > Java - > Zainstalowany JREs - tutaj możesz dodać swój jdk Tutaj wpisz opis obrazka 2) Środowisko wykonawcze jdk można ustawić w pom.xml jak wspomniano przez @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) alternatywny JRE może być użyty do wybrania jdk z katalogu

 6
Author: manntsheth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-06 20:45:26

Miałem do czynienia z tym samym problemem podczas próby zbudowania pliku jar mojej aplikacji przy użyciu mvn clean install, chociaż aplikacja działała dobrze podczas uruchamiania z Eclipse.

Problem był zbyt naiwny, że nie ustawiłem zmiennej środowiskowej JAVA_HOME . Wszystko, co musiałem zrobić, to ustawić zmienną środowiskową JAVA_HOME do katalogu JDK, upewnić się, że nie jest do "\bin "i bez dwukropka"; " .

Tutaj wpisz opis obrazka

Jak rozumiałem to jest jako:

Aplikacja działała poprawnie w Eclipse, ponieważ Biblioteka systemowa JRE odnosiła się do JREwewnątrz folderu JDK zamiast zewnętrznego folderu JRE bez JDK. [Jak wyjaśniono bardzo dobrze w innych odpowiedziach]

Ta konfiguracja nie dotyczy maven polecenia, które uruchamiamy w wierszu polecenia. Nadal będzie szukał zmiennej JAVA_HOME, aby uzyskać dostęp do biblioteki systemowej JRE, a gdy nie zostanie znaleziona, odnosi się do zewnętrznego folderu JRE bez JDK.

 6
Author: Dhaval Simaria,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-06 08:35:16

Dla mnie JRE było w zmiennej środowiskowej PATH przed JDK path

  1. C:\ProgramData\Oracle\Java\javapath
  2. C:\env\jdk1.8.0_151\bin

Więc usunąłem 1. Prawdopodobnie wymiana ich też to naprawi.

 4
Author: Florin D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-11 04:09:05

Mam ten sam problem i dodaję JAVA_HOME do zmiennych środowiskowych.

env var

  • Jeśli używasz eclipse, po prostu sprawdź https://stackoverflow.com/a/21279068/6097074
  • Jeśli używasz intellij, po dodaniu JAVA_HOME otwórz wiersz polecenia z katalogu projektu i uruchom mvn clean install (nie używaj intellij terminal).
 4
Author: ankit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-08 05:59:12

Istnieje inna możliwa odpowiedź na to pytanie, i może jestem jedyną osobą na tyle głupią, że natknąłem się na to, ale myślę, że warto dodać, ponieważ żadna z innych odpowiedzi nie zastosowała się, ponieważ już miałem te ustawienia poprawne.

Kiedy instalujesz JDK, instalator pyta, gdzie chcesz zainstalować pliki. Domyślnie w systemie Windows jest to coś w rodzaju C:\Program Files \ Java \ jdk1. 8. 0_74 (lub jakąkolwiek wersję instalujesz).

Następnie prosi Cię o katalog do zainstalowania JRE, który domyślnie jest czymś w rodzaju C:\Program Files\Java\jre1. 8. 0_74.

Zauważ, że jeden to jdk 1.8.0_74 a drugi to jre 1.8.0_74

Spieszyłem się i myślałem, że Instalator dwa razy zadał mi to samo pytanie, ustawiłem zarówno moje lokalizacje instalacji JDK jak i JRE na D:\devtools\jdk\jdk1.8.0_74, w wyniku czego instalator nadpisuje JDK z JRE. Spowodowało to (między innymi) zaginięcie javaca.exe w moim koszu JDK, i ten sam błąd, który zgłosił tutaj OP we wszystkich moich kompilacjach maven.

 3
Author: Sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 02:54:19

Mam rozwiązanie.

Najczęstszym rozwiązaniem tego problemu jest zmiana lokalizacja jdk jako mój zainstalowane JREs zamiast lokalizacja JRE ale to nie rozwiązało mojego problemu tym razem.

Więc zrobiłem poniżej, aby rozwiązać problem. Rozwiń zakładkę zainstalowany JREs , a znajdziesz środowiska wykonawcze tab.

Kliknij na swoim ulubionym środowisku wykonywania. W moim przypadku było to JAVASE-1.8. Tam pokazuje 2 opcje. JDK i JRE. Wybierz JDK tam i problem jest rozwiązany.

Tutaj wpisz opis obrazka

 3
Author: Vero J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-24 07:24:59

Właśnie zmarnowałem 3 godziny na ten problem, dopóki nie udało mi się go uruchomić. Miałem ten błąd w Terminalu Eclipse podczas wydawania polecenia kompilacji mvn:

W tym środowisku nie jest dostępny żaden kompilator. Może biegasz na JRE zamiast na JDK?

Więc przeczytałem tutaj, że muszę zrobić nową zmienną systemową o nazwie JAVA_HOME i skierować ją w kierunku folderu instalacyjnego jdk. Jednak wygenerowało to kolejny błąd:

Source option 1.5 is no dłuższe wsparcie. Użyj 1.6 lub nowszego

Nie mogłem znaleźć rozwiązania dla tego...

Więc poprawka, aby to wszystko odejść jest zainstalować Java SE Development Kit 8! Używałem 9 myśląc, że jeśli to najnowszy musi być lepszy...

W każdym razie...

  1. Odinstaluj wszystkie wersje Javy z komputera
  2. Zainstaluj JDK8 z proszę.: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. Następnie zdefiniuj wartość środowiskową systemu JAVA_HOME - tutorial tutaj: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. Uruchom ponownie Eclipse i ciesz się! (przynajmniej tak zrobiłem)

Mając nadzieję, że to oszczędzi jakiegoś biednego wędrowca kłopotów.

 2
Author: JustNatural,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-30 21:35:05

W moim przypadku miałem zmienną systemową path has "C:\ProgramData\Oracle\Java\javapath miejsce.

In "C:\ProgramData\Oracle\Java\javapath" lokalizacja java, javaw tylko tam. Więc dostaję ten sam błąd.

Raz usunąłem wszystkie pliki w "C:\ProgramData\Oracle\Java\javapath" folder mój błąd został rozwiązany.

 2
Author: MurugaRaja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-18 08:01:57

Spotkałem się z tym samym problemem, popełniłem błąd, że dodałem ścieżkę jre tylko w Path var, a nie ścieżkę jdk .Kiedy ścieżka jdk została dodana do ścieżki i zbudowała projekt maven, jego praca była idealna .Thanks all

 1
Author: Sapna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-09 17:50:56

Spróbuj tego.

<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>
 1
Author: Wagh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-06 08:03:16

Dodaj nową definicję JRE (wybierz ścieżkę JDK), zadziałało dla mnie.

Http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm

 1
Author: Lrodriguez84,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-04 17:42:44

Dokonałem następującej zmiany i zadziałało na mnie.Mam nadzieję, że to komuś pomoże.Tutaj wpisz opis obrazka

 0
Author: Kunal Khaire,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-19 08:24:56

Oprócz odpowiedzi powyżej, mogę powiedzieć, że po prostu spróbuj uruchomić Mavena z terminala(poza Eclipse). W ten sposób, jeśli buduje się z zewnątrz, ale nie w Eclipse, możesz zrozumieć, że problem powinien być w Eclipse.

 0
Author: Ad Infinitum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-25 11:11:56

Istnieje kilka odpowiedzi na to pytanie, ale wszystkie są związane z prawidłową konfiguracją ścieżki JDK, ale tylko z JRE możemy rozwiązać ten problem.

Wystarczy skorzystać z deployment assembly, aby skonfigurować ścieżkę pliku packaged war projektu Java EE, a następnie ponownie uruchomić maven-install.

Kroki, aby skorzystać z deployment assembly:

  1. Kliknij prawym przyciskiem myszy na projekt Jave EE -- > kliknij na właściwości -- >kliknij na Deployment Assembly

  2. Kliknij przycisk Dodaj -- > kliknij na archiwum z pliku System -- > kliknij Dalej --> kliknij Dodaj -- > przejdź do .katalog m2 \ respository i wyszukaj wygenerowany plik war --> Wybierz plik wojny -- > kliknij przycisk Otwórz -- > kliknij Zastosuj -- > OK

  3. Kliknij prawym przyciskiem myszy na projekt -- > kliknij na Maven Install pod Run As

To zbuduje Twój projekt pomyślnie, bez żadnego błędu kompilatora.

Hope this rozwiązuje problem bez JDK.

 0
Author: S Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-25 10:18:54

Czy brakuje Ci jakiejś konstrukcji Mavena?

Poza powyższymi zmianami JRE.Wciąż mam do czynienia z podobnym problemem.Brakowało mi zależności JUnit po dodaniu działa dobrze.

Mam nadzieję, że to pomoże.

 0
Author: Mohammed Sarfaraz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-09 08:28:10

Otrzymywałem ten sam błąd, gdy tworzyłem nową instancję ubuntu EC2 16.04 z zainstalowaną już Javą i podczas uruchamiania mvn clean package napotkałem ten problem i poniższe rozwiązanie działało dla mnie.

Jeśli pracujesz na serwerze Ubuntu, możesz spróbować ponownie zainstalować Javę i do tego możesz użyć tej odpowiedzi Jak zainstalować JDK na Ubuntu Linux

 0
Author: Ishan Ojha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-04 11:48:37