Eclipse - sem Java (JRE) / (JDK) ... sem máquina virtual


278

Estou tentando fazer com que o Eclipse v3.5 (Galileo) seja executado novamente no meu computador - já o executei antes sem problemas, mas agora continuo recebendo este erro:

Um Java Runtime Environment (JRE) ou Java Development Kit (JDK) deve estar disponível para executar o Eclipse. Nenhuma máquina virtual Java foi encontrada após pesquisar os seguintes locais: C: \ eclipse \ jre \ javaw.exe javaw.exe no PATH atual

Acabei de fazer uma nova instalação do JDK e do SDK.

Eu tenho o Windows 7 (x64).

O que há com isso? Como faço para corrigir isso?

Não consigo executar nenhum dos ipconfig / tracert / ou ping.


3
Java Runtime Environmenté JRE não SDK ...
user85421

1
Instale um JRE - isso fornece um javaw.exe no seu caminho. JDK's não.
Thorbjørn Ravn Andersen

12
@Carlos, cada JDK traz um JRE particular.
Thorbjørn Ravn Andersen

3
@ Thorbjørn: e qual é o objetivo? Eu sei disso e também que o JDK também traz um JRE público . Eu escrevi que "O Java Runtime Environment não é SDK", mas você deve ler a postagem original (antes de ser editada em 11 de janeiro) para entender por que a escrevi: "A Java Runtime Environment ( SDK ) ou ..."
user85421

11
Se você instalou recentemente o JDK em outro caminho após a instalação do Eclipse, poderá enfrentar esse problema. Isso ocorre porque o eclipse codifica o caminho do JDK no eclipse.ini quando é configurado pela primeira vez. Apenas altere o caminho JDK correto em eclipse.ini. Isso deve resolver esse erro.
Rajaraman

Respostas:


221

Por padrão, o Eclipse tentará iniciar com o padrão " java.exe" (o primeiro referenciado por seu PATH)

Três coisas para lembrar:

  • "Instalar" um JRE ou JDK pode ser tão simples quanto descompactá-lo ou copiá-lo de outro computador: não há etapas especiais de instalação e você pode ter quantas versões diferentes da JVM (1.4, 5.0, 6.0 ...) desejar , "instalado" (copiado) quase em qualquer lugar do seu disco.
  • Eu recomendaria sempre executar o Eclipse com o JRE mais recente possível (para se beneficiar das evoluções mais recentes do ponto de acesso ). Você pode:
  • A JVM que você fará referência na sua sessão do Eclipse nem sempre é a utilizada para ativar o Eclipse porque:
    • Você só precisa de um JRE para iniciar o Eclipse, mas, uma vez lançado o Eclipse, você deve registrar um JDK para seus projetos (especialmente para fontes Java e propósitos de depuração, também em teoria para compilação, mas o Eclipse possui seu próprio compilador Java). Nota: Você pode se registrar apenas um JRE no Eclipse porque é suficiente para executar seu programa, mas novamente um JDK permitirá mais operações.
    • Embora o Java registrado padrão no Eclipse seja o usado para iniciar a sessão, você pode registrar um SDK mais antigo (incluindo um que não seja da Sun) para executar / depurar seus programas com um JRE semelhante ao que será realmente ser usado na produção.

JREs instalados


Junho de 2012, jmbertucci comenta:

Estou executando o Windows 7 de 64 bits e o JRE de 32 bits instalado. Fiz o download do Eclipse de 64 bits, que procura um JRE de 64 bits. Como eu não tinha o JRE de 64 bits, ele lançou o erro, o que faz sentido.

Fui à página de instalação manual do Java (que não era tão acessível diretamente quanto você gostaria) e instalei a versão de 64 bits. Consulte " Downloads de Java para todos os sistemas operacionais ". Era tudo o que eu precisava.


Abril de 2016: Steve Mayne acrescenta nos comentários :

Eu tive que editar o eclipse.iniarquivo para referenciar o caminho Java correto - o Eclipse não usa o ambiente PATHquando existe um valor em eclipse.ini.


42
Esta pergunta / resposta é um pouco antiga, mas eu estava com esse problema, então postarei minhas anotações. Estou executando o Win7 64bit e eu tinha o JRE de 32 bits instalado. Eu baixei o Eclipse 64bit, que procura um JRE de 64 bits. Como eu não tinha o JRE de 64 bits, lançou o erro, o que faz sentido. Fui à página de instalação manual do Java (que não era tão diretamente acessível quanto você gostaria) e instalei a versão de 64 bits. java.com/en/download/manual.jsp Era tudo o que eu precisava.
precisa saber é o seguinte

2
@Nuktu: Adicionei o comentário de jmbertucci à resposta
VonC 7/12/12

@ jmbertucci: obrigado por suas anotações. Eu os adicionei à resposta para obter mais visibilidade.
VonC

2
@VonC eu tive que editar o arquivo eclipse.ini para referenciar o caminho Java correto - Eclipse não usar o caminho ambiente em tudo quando há um valor em eclipse.ini
Steve Mayne

1
@SteveMayne Interessante, obrigado. Incluímos seu comentário na resposta para obter mais visibilidade.
VonC

141

Basta copiar este arquivo:

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

para a pasta Eclipse

* nota testada apenas para Windows

Substituindo javaw.exe na pasta Eclipse


Eu estava procurando por uma solução simples como essa resposta, mas não funcionou para mim, caso alguém tenha uma situação semelhante, alterar o diretório vm no arquivo eclipse.ini pode ajudar .
Noha Kareem

3
Não funcionou para mim, deu-me Erro: abrindo a chave do registro 'Software \ Javasoft \ Java Runtime Environment'. Eu tive que copiar toda a pasta jre7 (no meu caso) para o diretório Eclipse e renomeá-la para jre. Então funcionou.
precisa saber é o seguinte

Se alguém falhar, tente copiar a pasta jre para a pasta eclipse.
Arthur Zhixin Liu

@NohaKareem, seu conselho foi o mais próximo para mim. Infelizmente, minha pasta 'jre' continha apenas 'lib', portanto, copiar a pasta 'jdk' do Java (embora maior a 350MB, mas tinha uma pasta 'bin' interna) e renomeá-la como 'jre' funcionou. Obrigado.
Mindsect Equipe

Tendo o java de 32 e 64 bits instalado, mas o java de 32 bits no caminho, a tentativa de abrir um eclipse de 64 bits falhará, colocando o arquivo javaw de 64 bits ao lado do exclipse faz com que funcione.
DiamondDrake 10/01

83

Todas as outras respostas sobre como definir apenas o JAVA_HOMEnão estão totalmente corretas. O Eclipse não consulta oJAVA_HOME . Olhe mais de perto a mensagem de erro:

... no seu PATH atual

Dizia literalmente que PATHnão JAVA_HOME.

Clique com o botão direito do mouse em Meu computador e escolha Propriedades (ou pressione Winkey+ Pause), vá para a guia Avançado , clique no botão Variáveis ​​de ambiente , na lista Variáveis do sistema na parte inferior, selecione Path(não, não Classpath ), clique em Editar e adicione ;c:\path\to\jdk\binao final do valor.

Como alternativa, se não estiver presente, você também pode adicionar JAVA_HOMEvariáveis ​​de ambiente e utilizá-las no PATH. No mesmo diálogo, clique em Novo e adicione JAVA_HOMEcom o valor de c:\path\to\jdk. Em seguida, você pode adicionar ;%JAVA_HOME%\binao final do valor da Pathconfiguração.


2
Não funcionou :) os dados do nome do ambiente: Caminho --- valor: C: \ Arquivos de Programas (x86) \ Java; C: \ Arquivos de programas (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
Caminhos com espaços precisam ser colocados entre aspas.
BalusC

meu caminho foi configurado perfeitamente configurado antes, o compilador Borland editou o campo path e substituiu o caminho java por seu próprio caminho, agora fixo, thnks !!!
precisa

1
@BalusC Na verdade, não há necessidade de incluir caminhos entre aspas ao configurar variáveis ​​de ambiente PATH no Windows. Apenas delimitá-los com ponto e vírgula ( ;) é suficiente.
informatik01

esta é a resposta que a resolve. depois de algumas horas pesquisando, para aqueles que têm o mesmo problema, o que você precisa é: 1) verifique se tudo está de 64 bits. Deve instalar automaticamente em "arquivos de programas", NÃO "arquivos de programas (x86)". 2) Escreva o -VM na pasta bin que as outras respostas possuem. 3) Defina o caminho como esse cara disse. Nada acontecerá se você não puder executar o java na linha de comando. 4) rejoice
triplebig

36

Abra as Propriedades do sistema do Windows no painel de controle e procure a seção de variáveis ​​de ambiente:

  • Adicione uma entrada JAVA_HOME apontando para o diretório em que o JDK está instalado (por exemplo, C: \ Arquivos de Programas \ Java \ jre6)
  • Localize a entrada Caminho e adicione o seguinte no final;% JAVA_HOME% \ bin
  • OK as mudanças
  • Reinicie o eclipse para que ele esteja ciente do novo ambiente

Agora, a maioria das ferramentas Java poderá encontrar sua instalação Java usando a variável de ambiente JAVA_HOME ou procurando java.exe / javaw.exe na variável de ambiente Path.


3
Quando adicionei o nome: valor JAVA_HOME: "C: \ Arquivos de Programas (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" Ainda recebo o mesmo erro
Wallter

24

Se você baixar a versão de 64 bits do Eclipse; procurará a versão de 64 bits do JRE. Se você baixar a versão de 32 bits do Eclipse; ele procurará a versão de 32 bits do JRE

O que fiz foi instalar as versões de 32 e 64 bits do JRE. Você pode obter isso no site da SUN Oracle. O site JAVA parece instalar automaticamente a versão de 32 bits do Java. Eu acho que é por causa do navegador da web.


2
Como ladookie disse que o problema provavelmente era o navegador executando um código incorreto no site de Java e obtendo a versão errada do JAVA ...
Wallter

1
Speedbaron está completamente aqui. Se você estiver modificando sua variável de ambiente PATH, certifique-se de colocar o caminho da versão correta. Meu sistema Windows 7 de 64 bits tinha um JRE de 32 bits instalado (não sei por quê), então instalei a versão de 64 bits e adicionei ao PATH o novo diretório. Parece funcionar bem agora.
Musicliftsme

1
Este foi o meu problema. Observe que o Windows instala 64 C:\Program Files\Javae 32 bits para C:\Program Files (x86)\Java.
Styfle

10

Acabou que tudo que eu precisava fazer era mudar o 'caminho' para:

"C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Arquivos de Programas (x86) \ Java; C: \ Arquivos de Programas (x86) \ Java \ jdk1.6.0_14 \ bin "

fez isso :)


1
BTW, você deve usar o jdk1.6.0_16 ou posterior. Usando o jdk 1.6.0_14, não é possível usar os pontos de interrupção corretamente no Eclipse: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
#

9

Eu tenho o Windows 7 de 64 bits e tive o mesmo problema com o eclipse. Para fazê-lo funcionar, tive que usar o Internet Explorer (versão de 64 bits) para baixar o java. Essa era a única maneira de obter o java para instalar uma versão de 64 bits. Quando usei o firefox para instalar o java, ele instalava automaticamente uma versão de 32 bits (tão idiota!). E a versão de 64 bits do Eclipse não detectaria a versão de 32 bits do java.


Eu não tenho mais o problema - mas isso parece ser uma boa solução e faz sentido - seria interessante testar isso com outros navegadores de 64 bits ...
Wallter

7

Solução em poucas palavras:

Clique com o botão direito do mouse em Meu computador, clique em Propriedades e, em seguida, em Configurações avançadas do sistema, uma janela Propriedades do sistema será exibida, na guia Avançado, escolha variáveis ​​de ambiente. A janela Variáveis ​​de ambiente será exibida, na seção Variáveis ​​do sistema, procure por PATHvariáveis ​​e edite o valor. , alterando-o (a versão; jre6, jre7, etc) para o que você estiver usando, por exemplo, para o meu:C:\Program Files\Java\jre7\bin


7

Não confie na variável de caminho do Windows, pois ela é alterada em quase todas as atualizações. Por exemplo, uma atualização de java chrome (32 bits em uma máquina de 64 bits) substitui a JVM de 64 bits em todo o sistema por uma JVM de 32 bits. Observe também que essa entrada deve ser a última no eclipse.ini, caso contrário, não funcionará. E - como indicado de outra forma - a variável JAVA_HOME NÃO é avaliada pelo eclipse.exe.

mesmo que seu JAVA_HOME e Path estejam configurados válidos, eles podem ter esse problema, portanto, a maneira mais simples de fazer é abrir o eclipse.ini na pasta de instalação do eclipse

-vm

C: \ Arquivos de programas \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

substitua C: \ Arquivos de programas \ Java \ jdk1.7.0_71 \ bin \ javaw.exe pelo caminho do seu jdk ou jre


Eu voto para que esta resposta seja a correta. Não confie na variável de caminho do Windows, pois ela é alterada em quase todas as atualizações. Por exemplo, uma atualização de java chrome (32 bits em uma máquina de 64 bits) substitui a JVM de 64 bits em todo o sistema por uma JVM de 32 bits. Observe também que essa entrada deve ser a última no eclipse.ini, caso contrário, não funcionará. E - como indicado de outra forma - a variável JAVA_HOME NÃO é avaliada pelo eclipse.exe. Edite sua resposta de acordo.
Heri

Essa é a melhor resposta, pois resolve diretamente o problema real. O Eclipse está procurando um caminho por um parâmetro específico e esse valor está errado ... portanto, a correção do valor corrige o problema.
precisa saber é o seguinte

6

No seu eclipse.iniarquivo, você precisa atualizar o caminho para a VM para apontar para o mesmo local em que javaw.exeestá instalado na sua máquina.


6

Não se preocupe, eu também fiquei arruinado por esse erro e fatal e, quando o peguei, fiquei tão frustrado que estava dando para deixar uma programação para Android, mas consegui, simplesmente copie esse código e cole na variável do sistema No caminho ...

C: \ Arquivos de programas; C: \ Winnt; C: \ Winnt \ System32; C: \ Arquivos de programas \ Java \ jre6 \ bin \ javaw.exe

Agora copie a pasta "jre" do seu caminho como se eu tivesse o "jre" nesse caminho

            C:\Program Files\Java

e cole-o na pasta eclipse, onde o arquivo eclipse.exe está localizado. como se eu tivesse meu eclipse configurado neste local

    F:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse

Então, dentro da pasta eclipse, cole a pasta "jre". Se você tiver "jre6", renomeie-o como "jre" .... e execute o seu eclipse, você obterá a solução ...

   //<<<<<<<<<<<<<<----------------------------->>>>>>>>>>>>>>>>>>>                 

OUTRAS SOLUÇÃO: 2

Se o problema não puder ser resolvido com as etapas acima, siga estas etapas

  1. Copie a pasta "jre" do seu caminho Java, como C: \ Arquivos de Programas \ Java \ jre6 * etc, e cole-a no diretório eclipse (Onde o eclipse está disponível)
  2. Vá para o arquivo eclipse.ini, abra-o.
  3. Altere o diretório do seu arquivo javaw.exe como

-vmF: \ Softwares \ LANGUAGES SOFTEARE \ Instalação do Android \ eclipse Indigo versão 32 bits \ jre \ bin / javaw.exe

Agora, desta vez, quando você iniciar o eclipse, ele procurará o javaw.exe, portanto, o caminho no eclipse.ini, como está agora na mesma pasta, iniciará o javaw.exe e começará a funcionar .

Se você ainda tiver alguma dúvida, pode solicitá-la novamente, basta acessar meu perfil e descobrir meu ID de email. porque eu amo o fórum de estouro de pilha e isso me tornou um programador. *


5

Editei meu arquivo eclipse.ini para atualizar o JDK recém-atualizado. Anteriormente, eu tinha o jdk1.7.0_09 e atualizei agora para o jdk1.7.0_80 e o eclipse lançou esse erro.

Um Java Runtime Environment (JRE) ou Java Development Kit (JDK) deve estar disponível para executar o Eclipse. Nenhuma máquina virtual Java foi encontrada após pesquisar os seguintes locais: C: / Arquivos de Programas / Java / jdk1.7.0_09 / bin / javaw

Após atualizar o eclipse.ini de,

-vm
C:/Program Files/Java/jdk1.7.0_09/bin/javaw

para

-vm
C:/Program Files/Java/jdk1.7.0_80/bin/javaw

Eclipse funciona bem.


1
Esta é a solução que funcionou para mim - obrigado Lucky. O Eclipse carrega o JRE referenciado no arquivo ini, portanto, a resposta aceita está incorreta ao sugerir que analise o caminho PAT.
9788 Steve Jobs,


3

se depois de adicionar a variável C: \ Arquivos de Programas \ Java \ jdk1.8.0_92 \ bin na PATH nas variáveis ​​de ambiente, o eclipse deu o mesmo erro

Para verificar o arquivo de definições de configuração do eclipse encontrado na pasta eclipse, você deve ver o mesmo caminho jdk existente em C: \ Arquivos de programas

insira a descrição da imagem aqui

Espero que ajude.


2

Quando tive esse problema, no meu caso, tinha x64 JDK + JRE instalado com o x86 Eclipse. Portanto, a instalação do x86 JDK + JRE resolveu meu problema :) Também criei uma jrepasta na pasta eclipse e copiei a binpasta do meu caminho local C:\Program Files (x86)\Java\jre7para ..\eclipse\jre\.


2
  • SO de 64 bits -> Você precisa: Java de 64 bits e Eclipse de 64 bits
  • SO de 32 bits -> Você precisa: Java de 32 bits e Eclipse de 32 bits

se você atualizar sua versão java com a atualização padrão no seu computador de 64 bits (e você tiver um navegador de 32 bits ), o java instalará a versão de 32 bits. Você deve encontrar a versão java de 64 bits e instalá-la.


1

Eu tive um colega de trabalho com esse problema exato na semana passada. Ele o corrigiu instalando a versão x64 do Eclipse e o x64 JDK.

Edit: ele reutilizou seu antigo espaço de trabalho depois de instalar os plugins necessários, para que isso não seja um problema


1

Existe uma maneira mais fácil de fazer isso. Basta executar o cmd x64. Digite cmd x64 para pesquisar a barra no menu Iniciar e você o encontrará :) Ou, como alternativa, você deve definir o caminho para os arquivos de programas (x86) ... Por exemplo, C: \ Arquivos de Programas (x86) \ Java \ jre6


1

Basta adicionar o caminho do JRE para Ex: C: \ Arquivos de programas \ Java \ jre5 \ bin na variável de ambiente Put ";" entre todos os caminhos. Em seguida, clique no eclipse.exe. Ele funcionará ...


1

A razão pela qual você obteve esse erro é porque o eclipse precisa de um JRE para ser iniciado, o que não foi possível encontrar. O primeiro local em que procura é o diretório atual, o arquivo eclipse.ini e, finalmente, o caminho do sistema. Portanto, se não conseguir encontrar a jvm correta (as versões de bits são diferentes) em qualquer um desses três locais,

A maneira recomendada é editar o arquivo eclipse.ini e informar ao eclipse onde exatamente procurar o vm / jre, incluindo esta linha no arquivo:

-vm
[caminho para o seu java.exe] (que geralmente está em "C: \ Arquivos de Programas \ Java \ jre7 \ bin")

PS Para editar o eclipse.ini, pode ser necessário movê-lo, editá-lo e colá-lo novamente

Fonte: - wiki


1

Em primeiro lugar, obrigado a YouYou por sua solução! Tentei responder por YouYou ( https://stackoverflow.com/a/14464653/801919 ). Inicialmente, não funcionou para mim. A seguir, são apresentadas as etapas que eu precisava executar para que funcionasse:

  1. Inicialmente, eu não tinha o Java instalado na minha nova máquina. Então, eu tive que instalar isso (baixado de: http://java.com/en/download/manual.jsp ).
  2. Estou executando o SO de 64 bits. Mas, durante o download, recebi a mensagem que poderia me ajudar a escolher qual versão do Java baixar:Choose the 32-bit download to use with a 32-bit browser. Portanto, baixei a versão de 32 bits.
  3. Em seguida, segui o procedimento mencionado em https://stackoverflow.com/a/14464653/801919 , esperando obter a solução.
  4. Eu recebi outro erro: Java was started but returned exit code=13
  5. Em seguida, instalei a versão de 64 bits do Java.
  6. Copiado javaw.exedessa versão.

... E o Eclipse começou a trabalhar !!! Yaay!


1

Bem, esta resposta é para aqueles que tentaram todos os outros ainda sem sorte, que seja o Android studio ou Eclipseeu costumo fazer isso quando tudo o resto falha.

  1. Encontre a pasta sdk do Android e abra o arquivo android.bat com um editor de texto
  2. você encontrará alguns comandos como estes no início do arquivo,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Altere-os para

    set java_exe=< o caminho para o arquivo java.exe (pode ser encontrado dentro do diretório jdk folder / bin) >

  2. encontre as linhas

rem Set SWT.Jar path based on current architecture (x86 or x86_64) for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

  1. Substitua-o por set swt_path=< o caminho para seu respectivo arquivo swt.jar, para x86 em sdk \ tools \ lib \ x86 e para x64 em sdk \ tools \ lib \ x86_64 >
  2. Salve e feche o arquivo e agora você pode ir ..

1

Tente configurar seu JAVA_HOME para a pasta correta. Google para definir variáveis ​​de ambiente no Windows.



Eu odeio dizer isso ... mas você reiniciou?
Topher Fangio

Não é necessário reiniciar para instalar o Java.
Thorbjørn Ravn Andersen

1
nem é necessário JAVA_HOME. É o PATH usado para encontrar o javaw.exe. (JAVA_HOME é utilizado por algumas outras aplicações como formiga, então não é configuração errada de qualquer maneira)
user85421

1

Também encontrei esse problema. Meu caso é o seguinte:

insira a descrição da imagem aqui insira a descrição da imagem aqui

Em texto:

HKEY_CURRENT_USER\Environment
    Path    REG_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    JAVA_HOME    REG_SZ    C:\ProgramFiles\Java\jdk
    Path    REG_EXPAND_SZ    C:\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\
WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Progra
m Files (x86)\Perforce;C:\ProgramFiles\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\
Git\cmd;C:\Program Files (x86)\Skype\Phone\

C:\Users\ssfang> echo %^JAVA_HOME% = "%^JAVA_HOME%" = %%JAVA_HOME%% %JAVA_HOME%
%JAVA_HOME% = "%^JAVA_HOME%" = %C:\ProgramFiles\Java\jdk% C:\ProgramFiles\Java\jdk

Descobri que os tipos de valor do registro Pathsão diferentes, então verifiquei se o caminho é válido ou não pelo seguinte comando:

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

Como resultado, redefino o ambiente local (usuário atual) pelos seguintes comandos ( Setx ):

C:\Users\ssfang> setx PATH %^JAVA_HOME%\bin;"C:\ProgramFiles\nodejs"

SUCCESS: Specified value was saved.

C:\Users\ssfang> reg query HKEY_CURRENT_USER\Environment /v Path

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

C:\Users\ssfang>echo %PATH%
C:\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Fi
les\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Perforce;C:\ProgramFile
s\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\Git\cmd;C:\Program Files (x86)\Skype\
Phone\;%JAVA_HOME%\bin;C:\ProgramFiles\nodejs

Mas, no processo atual, ele não pode propagar essas alterações para outros processos em execução.

No entanto, se você modificar diretamente as variáveis ​​de ambiente do usuário no Editor do Registro,

essas modificações nas variáveis ​​de ambiente não resultam em alterações imediatas. Por exemplo, se você iniciar outro prompt de comando após fazer as alterações, as variáveis ​​de ambiente refletirão os valores anteriores (não os atuais). As alterações não surtirão efeito até você fazer logoff e logon novamente.

Para efetuar essas alterações sem precisar fazer logoff, transmita uma mensagem WM_SETTINGCHANGE para todas as janelas do sistema, para que qualquer aplicativo interessado (como Windows Explorer, Gerenciador de Programas, Gerenciador de Tarefas, Painel de Controle etc.) possa executar uma atualização.

Veja detalhes em Como propagar variáveis ​​de ambiente para o sistema

Aqui, dou um script do PowerShell para fazer isso:

# powershell -ExecutionPolicy ByPass -File
# Standard, inline approach: (i.e. behaviour you'd get when using & in Linux)
# START /B CMD /C CALL "foo.bat" [args [...]]
# powershell -ExecutionPolicy ByPass -WindowStyle Hidden -File myScript.ps1 


<#
Add-Type @'

public class CSharp
{
    public static void Method(object[] first, object[] second)
    {
        System.Console.WriteLine("Hello world");
    }
}
'@
$a = 1..4;
[string[]]$b = "a","b","c","d";
[CSharp]::Method($a, $b);
#>


<#

#http://stackoverflow.com/questions/16552801/how-do-i-conditionally-add-a-class-with-add-type-typedefinition-if-it-isnt-add

#Problem Add-Type : Cannot add type. The type name 'PInvoke.User32' already exists.

if (-not ("MyClass" -as [type])) {
    add-type @"
    public class MyClass { }
"@
}


p.s. there's no Remove-Type; see this answer for more on how to best work around this limitation:
http://stackoverflow.com/questions/3369662/can-you-remove-an-add-ed-type-in-powershell-again

I think it will be wanted when debugging.
It is much simpler to close a tab in Console and open new one in PowerShell_ISE.exe or close PowerShell.exe.

Or

Start-Job -ScriptBlock {
    param([uri]$url,$OutputDir)
    # download and save pages
    Invoke-RestMethod $url | Out-File "$OutputDir\$($url.Segments[-1])" -Force
} -ArgumentList $link,$OutputDir

#>
if (-not ([System.Management.Automation.PSTypeName]'PInvoke.Program').Type)
{
    $sig=@"
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections.Generic;

// The global namespace is the "root" namespace: global::system will always refer to the .NET Framework namespace System.

///P/Invoke (Platform Invoke)
namespace PInvoke
{
    public static class User32
    {
        /// http://www.pinvoke.net/default.aspx/Constants/HWND.html
        // public const IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms725497(v=vs.85).aspx
        /// http://www.pinvoke.net/default.aspx/Constants/WM.html
        public const UInt32 WM_SETTINGCHANGE = 0x001A;

        // SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,    (LPARAM) "Environment", SMTO_ABORTIFHUNG,    5000, &dwReturnValue);

        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952(v=vs.85).aspx
        /// If the function succeeds, the return value is nonzero. 
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessageTimeout", SetLastError = true)]
        public static extern uint SendMessageTimeout(IntPtr hWnd, uint Msg, int wParam, string lParam, SendMessageTimeoutFlags fuFlags, uint uTimeout, out int lpdwResult);
    }

    [Flags]
    public enum SendMessageTimeoutFlags : uint
    {
        SMTO_NORMAL = 0x0,
        SMTO_BLOCK = 0x1,
        SMTO_ABORTIFHUNG = 0x2,
        SMTO_NOTIMEOUTIFNOTHUNG = 0x8,
        SMTO_ERRORONEXIT = 0x20
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            //int innerPinvokeResult;
            //uint pinvokeResult = User32.SendMessageTimeout(User32.HWND_BROADCAST, User32.WM_SETTINGCHANGE, 0, "Environment", SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            Console.WriteLine("Over!!!!!!!!!!!!!!!!!!!!!!!!!");
        }
    }
}
"@

    Add-Type -TypeDefinition $sig
}


## [PInvoke.Program]::Main([IntPtr]::Zero);

$innerPinvokeResult=[int]0
[PInvoke.User32]::SendMessageTimeout([IntPtr]0xffff, [PInvoke.User32]::WM_SETTINGCHANGE, 0, "Environment", [PInvoke.SendMessageTimeoutFlags]::SMTO_NORMAL, 1000, [ref]$innerPinvokeResult);

Setx setx [/ s [/ u [] [/ p []]]] [/ m]

/m Specifies to set the variable in the system environment. The default setting is the local environment

0

Marque Janela> Preferências> Java> JREs instalados. Verifique se há algo lá; se não houver, adicione um.

Você atualizou recentemente seu JDK?


Sim, tentei adicionar o complemento Android. Mas não (como disse Topher Fangio), não posso iniciar o Eclipse agora.
Wallter

0

O JDK não instala uma JVM no caminho padrão.

A menos que você precise de ferramentas externas para executar como ant, o não JDK é suficiente para o Eclipse executar. A maneira mais fácil de instalar uma JVM é acessar http://java.com e deixá-lo instalar o que quiser instalar.

Em seguida, clique duas vezes no binário Eclipse novamente.


Eu o reinstalei (ele até perguntou se eu queria reinstalá-lo) sem sucesso. (Eu fiz tanto o Google Chrome plug-in 14 - ou algo parecido && o Firefox)
Wallter

Você foi ao java.com? Não é javasoft.com?
Thorbjørn Ravn Andersen

0

defina a variável JAVA_HOME e ad JAVA_HOME / bin como variável do caminho do desenvolvimento.


assim: "C: \ Arquivos de Programas (x86) \ Java; C: \ Arquivos de Programas (x86) \ Java \ jdk1.6.0_14 \ bin"? - ele ainda não funcionou :)
Wallter

Fazer referência a JAVA_HOME na variável de caminho requer incorporá-la:% JAVA_HOME% \ bin
Heri

Para mim (Windows 10 de 64 bits + Eclipse 4.10), o truque era adicionar, além da JAVA_HOMEvariável de ambiente, a JRE_HOMEvariável definida para o local do javaw.exelocal (que provavelmente é sempre a pasta bin do JDK instalada )
Guy Avraham

0

Eu tive o mesmo problema (Windows 7 x64, 64 bits JDK, 32 bits Eclipse) e encontrei 2 soluções:

  • Instale a versão de 64 bits do Eclipse (encontrada ao clicar na guia "Development Builds" na página de downloads).
  • Instale a versão de 32 bits do JDK.

Veja, mas você estava usando o Windows 7 x86, onde eu estava usando o x64 --- como outros já afirmaram, esse problema pode ter sido um problema da parte da SUN na programação de como a página da web 'detecta a versão' (ou seja, x64 ou x86) deve usar
Wallter

Correção, eu estava usando o Windows 7 x64
Tim

0

Eu tive o mesmo problema. A maneira mais fácil de corrigi-lo foi instalar o JRE e o eclipse como x86 ou x64. Quando o tipo de bit não correspondia, o eclipse não conseguia encontrá-lo. Portanto, se não for um grande problema desinstalar e reinstalar para torná-los compatíveis, eu faria isso.

Acabei instalando: Java Runtime Environment 1.7.0.3 (64 bits) e Eclipse Indigo (3.7) (64 bits)

Então simplesmente funciona.


0

Quando copiei apenas o javaw, ocorreu o segundo erro, não havia um arquivo java.dll, quando o copiei também, o eclipse não foi iniciado, o que fiz foi que copiei a pasta jdk inteira na pasta do eclipse e renomei o id para jre. Problema resolvido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.