Estou compilando um projeto no Eclipse usando o m2eclipse. Defino o caminho JDK no Eclipse assim:
Mas isso está mostrando um erro
— Sai prateek
como você está iniciando a compilação? Linha de comando? Ferramenta Eclipse?
— Joeri Hendrickx
da ferramenta eclipse Configuração da execução -> Objetivos: instalação limpa
possível duplicata do erro de compilação do pacote Maven
Ei, esse erro está chegando porque o Maven está tentando obter o JDK, mas no eclipse está apontando para o JRE. Você pode alterar o caminho para o JDK e ele funcionará. Confira abaixo post que irá ajudá-lo learn-automation.com/...
— Mukesh otwani
Estou postando o link para que alguém no futuro seja beneficiado como eu. stackoverflow.com/a/33873838/4525120
No IDE do Eclipse, acesse Janela > Preferências > Java > JREs Instalados > e verifique os JREs instalados . Você deve ter uma entrada com um JDK lá.
Selecione o Env Execution como mostrado abaixo. Clique em OK
Em seguida , clique com o botão direito do mouse em seu projeto -> Maven -> Atualizar projeto
Além disso, pode ser necessário alterar o Maven JRE (consulte a resposta @ jlars62) da seguinte forma. Vá para Executar -> Executar configurações, selecionando o Maven Build que eu estava executando (no painel esquerdo). Em seguida, cliquei na guia JRE e selecionei a opção JRE padrão da área de trabalho
— jaipster
@jaipster Eu tentei fazer isso, mas não consegui encontrar o jdk no painel esquerdo, só consigo ver o jre7. Você sabe por quê?
Pode ser que você não tenha o jdk7 instalado na sua máquina ou não esteja configurado no eclipse. Você pode confirmar.
@ Diode eu tive o mesmo problema. Eu fui para "JREs instalados" e cliquei em "Adicionar ..." A partir daí, naveguei até C: \ Arquivos de programas \ Java \ jdk1.7.0_XX e depois pude selecionar o jre como o jaipster descrito.
— Jlunavtgrad
Para mim, bastava adicionar o JDK à lista de "JREs instalados" (não é a melhor nomeação ...) e marcar a caixa de seleção ao lado da nova entrada do JDK, tornando-a a VM padrão.
— Tom Fink
Cliquei no botão "Pesquisar" no menu "JREs instalados". O Eclipse pesquisou uma das unidades para as quais eu apontei e saiu com todos os JREs e JDKs instalados.
— A Mitra Boy
Para mim, é exatamente o que o maven do eclipse reclama
Então, pressiono o Editbotão e mudo o caminho para a pasta JDK, limpo o projeto e tudo começa a funcionar
— Thai Tran
Prefiro adicionar o JRE usando o botão "Adicionar" e depois manipular uma entrada do JRE para se tornar uma entrada do JDK! E depois de adicionar o JDK, clique na caixa de seleção ao lado da entrada JDK. Isso já deve resolver os problemas descritos nesta postagem.
Isso é estranho . porque, como mostra o título da caixa de diálogo, isso deve colocar a Installed JREspasta em vez de jdk. Mas realmente me resolveu o problema. Obrigado
— Joe.wang
É weired o título está instalado JREs mas caminho é JDK mas de qualquer maneira ele funciona graças
— Abhijit Chakra
É uma boa ideia remover o JRE após adicionar o JDK. Às vezes, o Eclipse continua usando o JRE independentemente - não faz ideia do porquê. Tornar o JDK a única opção disponível ajuda. :)
— leftbit 24/10
Defina a JAVA_HOMEvariável de ambiente para a pasta raiz do JDK - necessária se você executar a linha de comandos ou o maven ( mvn).
(Pesquise no google JAVA_HOMEpor mais informações)
Nas propriedades do projeto na seção Java Compiler, selecione o JDK necessário - se você executar diretamente no eclipse
Por que a etapa 1 é necessária?
@DuncanJones, primeiro é necessário se você executar linha de comando ou maven (google para esta variável), o segundo - se você executar diretamente do eclipse,
Eu acrescentaria essa informação à sua resposta. Caso contrário, sugere que ambos são necessários em todos os casos.
Preste atenção que o JAVA_HOME não termina com "bin", mas aponta para a raiz do JDK.
Precisava disso para a liberação-plugin como ele não usa as configurações JRE de eclipse (com instalação maven externo) ...
Para mim, nada funcionou até que eu fiz essa alteração no meu pom.xml:
Pude ver que o m2e estava sendo executado em um JRE, não no JDK. Nada do que fiz mudou isso, incluindo a inclusão no eclipse.ini:
No final, nunca consegui que o m2e fosse executado em um JDK, mas configurar explicitamente o compilador Java (como acima).
— ksnortum
Essa solução deve ser implementada como último recurso, pois o próprio projeto é modificado para ser acoplado à sua máquina atual de desenvolvimento.
@ksnortum thanks! essa é a única coisa que fez funcionar para mim.
— Antony Fuentes Artavia
E quanto a nós, linux, aqui?
— logicbloke
Eu suspeito que é praticamente o mesmo, exceto que o executável seria / path / to / java / bin / javac. Talvez tente 'qual java` para encontrar o seu caminho Java.
No meu caso, foi resolvido fazendo o seguinte:
Vá para sua 'Configuração de tempo de execução' e configure seu JRE para um JDK.
Copiei a resposta caso ela seja excluída por algum motivo, mas a fonte está aqui
Isso funcionou para mim. Se o JDK não for exibido no menu suspenso JRE alternativo, você precisará adicionar o JRE instalado (navegue até a pasta em que o JDK está instalado) e selecione a pasta JDK.
Este foi o meu problema, obrigado pela sua resposta que foi resolvida.
— Amr Afifi
Eu estava recebendo esse erro ao tentar fazer uma compilação maven a partir do eclipse.
Para mim, a resposta foi Run-> Run Configurations, selecionando o que Maven Buildeu estava executando (no painel esquerdo). Depois, cliquei na JREguia e selecionei a opçãoWorkspace default JRE
Parece ser necessário verificar além da resposta selecionada acima.
— Nsandersen
Eu gosto mais desta solução, pois ela não altera a versão java padrão para outros projetos.
— Gonen I
Vá para windows -> Preferências -> Java -> JREs instalados
pode ser jre já está adicionado
clique em Adicionar -> VM padrão -> Próximo -> Diretório
e procure o JDK no meu caminho C:\Program Files\Java\jdk1.8.0_111
depois clique em terminar.
você verá uma janela como esta
selecione JDK -> Aplicar -> Ok
— GauRang Omar
Obrigado por compartilhar o caminho do JDK. Parecia que as pessoas podiam escolher outra opção para clicar no JDK quando eu só tinha o JRE exibido desde o início. Adicionei o JDK a partir do caminho que você forneceu.
— In-young Choung
Eu tenho o mesmo problema e apenas adiciono JAVA_HOMEàs variáveis ​​de ambiente .
Se você estiver usando o eclipse, consulte https://stackoverflow.com/a/21279068/6097074
Se você estiver usando intellij, logo após adicionar JAVA_HOMEo prompt de comando aberto do diretório do projeto e execute mvn clean install(não use o terminal intellij).
No entanto, tentei todas as opções acima, ainda recebendo a mesma mensagem de erro.
No meu caso, um JRE real foi usado incorretamente como JRE System Library no caminho de construção específico do projeto que obviamente estava substituindo todas as outras configurações discutidas aqui.
Nesse caso, tente o seguinte:
Abra as bibliotecas específicas do projeto do Java Build Path: Clique com o botão direito do mouse em "Projeto> Build Path> Configure Build Path ..." e selecione a guia "Libraries".
Selecione a entrada "Biblioteca do sistema JRE" e pressione "Remover".
Clique em "Adicionar biblioteca ...".
Um assistente aparece. Selecione "Biblioteca do sistema JRE" e clique em "Avançar>".
Agora selecione o JDK correto (no meu caso "Workspace default JRE", que eu configurei usando um JDK).
Feche o assistente pressionando "Concluir".
Feche a caixa de diálogo "Propriedades" pressionando "OK".
— Sir Hackalot
Eu tentei todas as opções acima mencionadas por @ishu, mas ainda obtendo org.apache.maven.lifecycle.LifecycleExecutionException: falha ao executar o objetivo org.apache.maven.plugins: maven-compiler-plugin: 3.1: compile (compilação padrão) no projeto hibernateTest1: Falha na compilação, tentei sua solução, mas nenhuma alteração no erro ... Por favor, me ajude.
— Namrata Choudhary
— Alekya
Uma alternativa se a resposta do jaipster não funcionar é acessar:
Janela> Preferências> Java> JREs Instalados
Em seguida, edite o jre para que aponte para o jdk e não para o jre (a página inicial do jre arquivada no editor de pacotes jre)
— brunoais
para mim, chega. Engraçado é que às vezes eu recebo erros que o JRE padrão está erroneamente apontando para um JDK.
trabalhou para mim, eu quero fazer instalação limpa maven compilar
Se você estiver executando o Mavencomando cmd, certifique-se de definir o caminho do jdk antes de executar o comando. No meu caso, eu criei um .batarquivo contendo o seguinte:
— Mahder
Eu enfrentei o mesmo problema ao tentar criar um arquivo jar do meu aplicativo de projeto usando mvn clean install, embora o aplicativo estivesse funcionando bem durante a execução do Eclipse.
O problema era, de fato, muito ingênuo, porque eu não havia definido a variável de ambiente JAVA_HOME . Tudo o que eu precisava fazer era definir a variável de ambiente JAVA_HOME como diretório JDK, verifique se não é até "\ bin" e sem ponto e vírgula ";" .
Como eu entendi é como:
O aplicativo funcionou bem no Eclipse, pois o JRE System Library estava se referindo ao JRE dentro da pasta JDK, em vez da pasta JRE externa sem o JDK. [Como explicado muito bem em outras respostas]
Essa configuração não se aplica ao comando maven que executamos no prompt de comando. Ele ainda procurará a variável JAVA_HOME para acessar a biblioteca do Sistema JRE e, quando não for encontrada, refere-se à pasta JRE externa sem o JDK.
— Dhaval Simaria
Existem várias opções para especificar.
Etapas: Bem no projeto, no explorador de projetos Vá para Executar-> Executar configuração -> Clique em Maven Build -> Clique na sua configuração de compilação / ou crie uma nova configuração. Você verá a janela como o instantâneo fornecido abaixo, clique na guia JRE lá.
Você vê 3 opções: 1) JRE padrão da área de trabalho 2) Ambiente de execução 3) JRE alternativo 1) O JRE padrão da área de trabalho é definido no menu 'Janela' na parte superior -> Preferências -> Java -> JREs instalados - Aqui você pode adicionar seu jdk 2) Ambiente de execução O jdk pode ser definido no pom.xml, conforme mencionado por @ksnortum
3) O JRE alternativo pode ser usado para selecionar um jdk do seu diretório
— manntsheth
Para mim, o JRE estava na variável de ambiente PATH antes do caminho do JDK
Então eu removi 1. Provavelmente, trocá-los também resolveria.
— Florin D
Minha resposta pertence ao ambiente Eclipse no Windows.
Eu fui para Preferências -> Java -> JREs instalados. NÃO vi o JDK aqui. Eu só vi o JRE aqui. Então, adicionei o JDK e desmarquei o JRE. Em seguida, verifiquei o JDK. Depois, executei o arquivo POM usando Configurações de Execução. Escolha a aba JRE e selecione a opção "Área de trabalho padrão ..." Aqui estão as imagens
— Krishna Rajagopalan
Declaração do problema = Nenhum compilador é fornecido neste ambiente. Talvez você esteja executando um JRE em vez de um JDK? intellij
Defina a variável de ambiente como abaixo para resolver o problema
Nome da variável : JAVA_HOME
Valor da variável : C: \ Arquivos de programas \ Java \ jdk1.8.0_202
Nome da variável : M2_HOME
Valor da variável : C: \ Arquivos de Programas \ apache-maven-3.6.0
Além disso , adicione o caminho Java e maven em " Variáveis ​​do sistema ", como abaixo:
C: \ Arquivos de programas \ Java \ jdk1.8.0_202 \ bin
C: \ Arquivos de programas \ apache-maven-3.6.0 \ bin
— Navdeep Ghotra
Há outra resposta possível para essa pergunta, e eu posso ser a única pessoa tola o suficiente para ter tropeçado nisso, mas acho que vale a pena acrescentar, pois nenhuma das outras respostas foi aplicada porque eu já tinha essas configurações corretas.
Quando você instala um JDK, o instalador pergunta onde você deseja instalar os arquivos. Por padrão, no Windows, é algo como C: \ Arquivos de Programas \ Java \ jdk1.8.0_74 (ou qualquer versão que você esteja instalando).
Em seguida, ele solicita um diretório para instalar o JRE, que por padrão é algo como C: \ Arquivos de Programas \ Java \ jre1.8.0_74.
Observe que um é o jdk 1.8.0_74 e o outro é o jre 1.8.0_74
Eu estava com pressa e, pensando que o instalador estava me fazendo a mesma pergunta duas vezes, defina meus locais de instalação do JDK e JRE como D: \ devtools \ jdk \ jdk1.8.0_74, resultando no instalador substituindo o JDK pelo JRE. Isso resultou em (entre outras coisas) um javac.exe ausente na minha bandeja do JDK e o mesmo erro que o OP relatou aqui em todas as minhas compilações de maven.
A solução mais comum para esse problema é alterar o local do jdk como meus JREs instalados em vez do local do JRE, mas isso não resolveu o meu problema desta vez.
Então eu fiz o abaixo para resolver o problema. Expanda a guia JREs instalados e você encontrará uma guia Ambientes de execução .
Clique no seu ambiente de execução favorito. No meu caso, foi o JAVASE-1.8 . Lá mostra 2 opções. JDK e JRE . Selecione JDK lá e o problema foi resolvido.
— Vero J
Acabei de perder 3 horas com esse problema até conseguir fazê-lo funcionar. Eu tive esse erro no Terminal Eclipse ao emitir um comando de compilação mvn:
Então, li aqui que preciso criar uma nova variável de sistema chamada JAVA_HOME e apontá-la para a pasta de instalação do jdk. No entanto, isso gerou outro erro:
A opção de origem 1.5 não é mais suportada. Use 1.6 ou posterior
Não foi possível encontrar uma correção para este, então ...
Portanto, a solução para fazer tudo desaparecer é instalar o Java SE Development Kit 8! Eu estava usando 9 pensando que se é o mais recente deve ser melhor ...
Desinstale todas as versões java do seu computador
Instale o JDK8 a partir daqui: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Em seguida, defina o valor ambiental do sistema JAVA_HOME - tutorial aqui: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/
Reinicie o Eclipse e divirta-se! (pelo menos foi o que eu fiz)
Esperando que isso poupe algum andarilho pobre de algum problema.
— JustNatural
No meu caso, eu tinha o caminho da variável do sistema com a localização "C: \ ProgramData \ Oracle \ Java \ javapath".
No local "C: \ ProgramData \ Oracle \ Java \ javapath" java, javaw apenas lá. Então, eu estou recebendo o mesmo erro.
Depois que removi todos os arquivos da pasta "C: \ ProgramData \ Oracle \ Java \ javapath", meu erro foi resolvido.
Eu tentei a maioria das respostas sem sucesso. O que funcionou para mim foi (depois de seguir https://stackoverflow.com/a/21279068/2408893 ):
clique com o botão direito do mouse em projeto -> Propriedades
selecione Caminho de Construção Java
selecione a biblioteca do sistema JRE
No ambiente de execução, selecione um jdk
construir e executar
— Emile Maras
Embora a pergunta seja sobre o erro na Eclipseinstalação, mas pensei que uma resposta para corrigir esse erro com a IntelliJinstalação do Windows 10 também pode ser útil aqui.
1 . Vá para File-> Settings-> Build, Execution, Deployment-> Build Tools-> Maven->Importing
2 . Definido JDKpara Importerconforme mostrado abaixo paraJAVA_HOME
Também JAVA_HOMEdeve ser definido como JDKcaminho em Variáveis ​​de ambiente -> Variáveis ​​do sistema e também deve ser adicionado %JAVA_HOME%\binàs variáveis ​​do sistema de caminho
— Nafeez Quraishi
Eu enfrentei o mesmo problema, o erro que cometi foi adicionar o caminho jre apenas no caminho var, não o caminho jdk. Quando o caminho jdk foi adicionado ao caminho e criar o projeto maven, seu trabalho está perfeito.
Eu fiz a seguinte alteração e funcionou para mim. Espero que ajude alguém.
— Kunal Khaire
— Wagh
Adicione nova definição de JRE (selecione o caminho JDK), funcionou para mim.
— Lrodriguez84
Eu estava recebendo o mesmo erro quando criei uma nova instância do EC2 ubuntu 16.04 com o Java já instalado e enquanto executava o pacote mvn clean, encontrei esse problema e a solução abaixo funcionou para mim.
Se você estiver trabalhando em um servidor Ubuntu, poderá tentar instalar o Java novamente e, para isso, poderá usar esta resposta Como instalar o JDK no Ubuntu Linux
— Ishan Ojha
No Windows 7 - 64 bits, há um problema de permissões que impede o instalador de descompactar o arquivo C: \ Arquivos de Programas \ Java \ jdk1.6.xx \ lib \ tools.jar no seu local. Esse arquivo jar é usado pelo maven-compiler-plugin versão 3.x, em vez do javac usual
Solução: execute, como administrador, o instalador do Java JDK! E verifique se o tools.jar está em C: \ Arquivos de Programas \ Java \ jdk1.6.xx \ lib \
Caso esteja usando o plugin de integração m2e maven, você deseja ver o arquivo visível para o Eclipse através das seguintes etapas dentro do Eclipse:
Vá para Janela -> Preferências -> Java -> JREs instalados Selecione o JDK que você está usando (C: \ Arquivos de Programas \ Java \ jdk1.6.xx) Pressione Editar para ver a lista de jars, incluindo tools.jar, OU você pode adicione-o como Adicionar JAR externo. Em seguida, configure a execução do maven através destas etapas:
Executar-> Executar configurações-> Preencher Nome, Diretório Base e Metas. Na mesma janela, vá para a guia JRE e aponte para JDK \ jdk1.6.xx \
— Parthiban
Além da resposta acima, eu poderia dizer que apenas tente executar o Maven a partir do terminal (fora do Eclipse). Dessa maneira, se for construído de fora, mas não no Eclipse, você poderá entender que o problema deve estar no Eclipse.
— Ao infinito
Existem várias respostas sobre esta pergunta, mas todas estão relacionadas à configuração do caminho correto do JDK, mas somente com o JRE podemos resolver esse problema.
Nós apenas precisamos usar o assembly de implantação para configurar o caminho do arquivo de guerra empacotado do Projeto Java EE e, em seguida, executar novamente a instalação maven.
Etapas para fazer uso do conjunto de implantação:
Clique com o botão direito do mouse no projeto Jave EE -> clique em Propriedades -> clique em Deployment Assembly
Clique no botão Adicionar -> Clique em Arquivos no Sistema de Arquivos -> Clique no próximo -> Clique em Adicionar -> Vá para o diretório .m2 \ respository e procure o arquivo de guerra gerado -> Selecionar arquivo de guerra -> Clique no botão Abrir -> Clique em Aplicar -> OK