Eclipse: sin Java (JRE) / (JDK) ... sin máquina virtual


278

Estoy tratando de volver a ejecutar Eclipse v3.5 (Galileo) en mi computadora; lo he ejecutado antes sin problemas, pero ahora sigo recibiendo este error:

Un Java Runtime Environment (JRE) o un kit de desarrollo de Java (JDK) deben estar disponibles para ejecutar Eclipse. No se encontró ninguna máquina virtual Java después de buscar en las siguientes ubicaciones: C: \ eclipse \ jre \ javaw.exe javaw.exe en su RUTA actual

Acabo de hacer una nueva instalación tanto del JDK como del SDK.

Tengo Windows 7 (x64).

¿Qué pasa con esto? ¿Cómo lo soluciono?

No puedo ejecutar ninguno de los ipconfig / tracert / o ping.


3
Java Runtime Environmentes JRE no SDK ...
user85421

1
Instale un JRE: esto le da un javaw.exe en su ruta. JDK no lo hace.
Thorbjørn Ravn Andersen

12
@Carlos, cada JDK trae un JRE privado.
Thorbjørn Ravn Andersen

3
@ Thorbjørn: ¿y cuál es el punto? Lo sé y también que JDK también trae un JRE público . Escribí que "Java Runtime Environment no es SDK", pero debe leer la publicación original (antes de ser editado el 11 de enero) para comprender por qué lo escribí: "Un Java Runtime Environment ( SDK ) o ..."
user85421

11
Si recientemente instaló JDK en otra ruta después de haber instalado Eclipse, entonces puede enfrentar este problema. Esto se debe a que el eclipse codifica la ruta JDK en eclipse.ini cuando se configura por primera vez. Simplemente cambie la ruta correcta de JDK en eclipse.ini. Eso debería resolver este error.
Rajaraman

Respuestas:


221

Eclipse intentará iniciarse por defecto con el " java.exe" predeterminado (el primero al que hace referencia su PATH)

Tres cosas para recordar:

  • "Instalar" un JRE o un JDK puede ser tan simple como descomprimirlo o copiarlo desde otra computadora: no hay pasos especiales de instalación, y puede tener tantas versiones diferentes de JVM (1.4, 5.0, 6.0 ...) como desee , "instalado" (copiado) casi en cualquier parte de su disco.
  • Recomendaría ejecutar siempre Eclipse con el último JRE posible (para beneficiarse de las últimas evoluciones de puntos de acceso ). Usted puede:
  • La JVM a la que hará referencia en su sesión de Eclipse no siempre es la que se utiliza para iniciar Eclipse porque:
    • Solo necesita un JRE para iniciar Eclipse, pero una vez que se inicia Eclipse, debe registrar un JDK para sus proyectos (especialmente para fuentes Java y propósitos de depuración, también en teoría para la compilación, pero Eclipse tiene su propio compilador Java) Nota: puede registrarse solo un JRE dentro de Eclipse porque es suficiente para ejecutar su programa, pero nuevamente un JDK permitirá más operaciones.
    • Aunque el Java registrado por defecto en Eclipse es el que se utiliza para iniciar la sesión, puede registrar un SDK anterior (incluido uno que no sea Sun) para ejecutar / depurar sus programas con un JRE similar al que En realidad ser utilizado en la producción.

JRE instalados


Junio ​​de 2012, jmbertucci comenta:

Estoy ejecutando Windows 7 de 64 bits y tenía el JRE de 32 bits instalado. Descargué Eclipse de 64 bits que busca un JRE de 64 bits. Como no tenía el JRE de 64 bits, arrojó el error, lo cual tiene sentido.

Fui a la página de instalación manual de Java (que no era tan accesible directamente como quisiera) e instalé la versión de 64 bits. Consulte " Descargas de Java para todos los sistemas operativos ". Eso fue todo lo que necesitaba.


Abril de 2016: Steve Mayne agrega en los comentarios :

Tuve que editar el eclipse.iniarchivo para hacer referencia a la ruta correcta de Java: Eclipse no utiliza el entorno PATHen absoluto cuando hay un valor eclipse.ini.


42
Esta pregunta / respuesta es un poco antigua, pero me encontraba con este problema, así que publicaré mis notas. Estoy ejecutando Win7 de 64 bits y tenía el JRE de 32 bits instalado. Descargué Eclipse 64bit que busca un JRE de 64bit. Como no tenía el JRE de 64 bits, arrojó el error, lo cual tiene sentido. Fui a la página de instalación manual de Java (que no era tan directamente accesible como quisiera) e instalé la versión de 64 bits. java.com/en/download/manual.jsp Eso fue todo lo que necesitaba.
jmbertucci

2
@Nuktu: He agregado el comentario de jmbertucci a la respuesta
VonC

@jmbertucci: gracias por tus notas. Los he agregado a la respuesta para mayor visibilidad.
VonC

2
@VonC Tuve que editar el archivo eclipse.ini para hacer referencia a la ruta correcta de Java: Eclipse no utiliza la RUTA del entorno cuando hay un valor en eclipse.ini
Steve Mayne

1
@SteveMayne Interesante, gracias. He incluido tu comentario en la respuesta para mayor visibilidad.
VonC

141

Simplemente copie este archivo:

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

a la carpeta Eclipse

* nota solo probada para Windows

Sustitución de javaw.exe en la carpeta Eclipse


Estaba buscando una solución simple como esta respuesta, pero no funcionó para mí, en caso de que alguien tenga una situación similar, cambiar el directorio vm en el archivo eclipse.ini podría ayudar .
Noha Kareem

3
No funcionó para mí, me dio un error: abriendo la clave de registro 'Software \ Javasoft \ Java Runtime Environment'. Tuve que copiar toda la carpeta jre7 (en mi caso) en el directorio Eclipse y cambiarle el nombre a jre. Entonces funcionó.
CuriousMarc

Si alguien falla, intente copiar la carpeta jre en la carpeta eclipse.
Arthur Zhixin Liu

@NohaKareem tu consejo fue el más cercano para mí. Desafortunadamente, mi carpeta 'jre' contenía solo 'lib', por lo que copiar sobre la carpeta 'jdk' de Java (aunque era más grande en 350 MB, pero tenía una carpeta 'bin' interna) y renombrarlo como 'jre' funcionó. Gracias.
Mindsect Team

Al tener instalados Java de 32 y 64 bits pero Java de 32 bits en la ruta, intentar abrir un eclipse de 64 bits fallará, al colocar el archivo Java de 64 bits junto a Exclipse lo hace funcionar.
DiamondDrake

83

Todas las otras respuestas sobre configurar solo las JAVA_HOMEno son del todo correctas. Eclipse no consulta elJAVA_HOME . Mire más de cerca el mensaje de error:

... en tu RUTA actual

Literalmente dijo que PATHno JAVA_HOME.

Haga clic derecho en Mi PC y elija Propiedades (o presione Winkey+ Pause), vaya a la pestaña Avanzado , haga clic en el botón Variables de entorno , en la lista Variables del sistema en la parte inferior seleccione Path(no, no Classpath ), haga clic en Editar y agregue ;c:\path\to\jdk\binal final del valor.

Alternativamente, y si no está presente, también puede agregar JAVA_HOMEuna variable de entorno y utilizarla en PATH. En el mismo diálogo, haga clic en Nuevo y agregue JAVA_HOMEcon el valor de c:\path\to\jdk. Luego puede agregar ;%JAVA_HOME%\binal final del valor de la Pathconfiguración.


2
No funcionó :) los datos del nombre del entorno: Ruta --- valor: C: \ Archivos de programa (x86) \ Java; C: \ Archivos de programa (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
Las rutas con espacios deben estar entre comillas.
BalusC

mi ruta se configuró perfectamente antes, el compilador de Borland editó el campo de ruta y reemplazó la ruta de Java con su propia ruta, ahora es Fija, ¡gracias!
Akhil Jain

1
@BalusC En realidad, no es necesario encerrar las rutas entre comillas al configurar las variables de entorno PATH en Windows. Solo delimitarlos con punto y coma ( ;) es suficiente.
informatik01

Esta es la respuesta que lo resuelve. después de un par de horas de búsqueda, para aquellos que tienen el mismo problema, lo que necesita es: 1) asegurarse de que todo sea de 64 bits. Debe instalarse automáticamente en "archivos de programa", NO en "archivos de programa (x86)". 2) Escriba -VM en la carpeta bin que tienen las otras respuestas. 3) Establecer el camino como dijo este tipo. Nunca sucederá nada si no puede ejecutar Java desde la línea de comandos. 4) alegrarse
triplebig

36

Abra las Propiedades del sistema de Windows desde el panel de control y busque la sección de variables de entorno:

  • Agregue una entrada JAVA_HOME que apunte al directorio donde está instalado el JDK (por ejemplo, C: \ Archivos de programa \ Java \ jre6)
  • Busque la entrada Ruta y agregue lo siguiente al final;% JAVA_HOME% \ bin
  • OK los cambios
  • Reinicie eclipse para que conozca el nuevo entorno.

La mayoría de las herramientas de Java ahora podrán encontrar su instalación de Java utilizando la variable de entorno JAVA_HOME o buscando java.exe / javaw.exe en la variable de entorno Path.


3
Cuando agregué el nombre: valor de JAVA_HOME: "C: \ Archivos de programa (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" Todavía recibo el mismo error
Wallter

24

Si descarga la versión de 64 bits de Eclipse; buscará la versión de 64 bits de JRE. Si descarga la versión de 32 bits de Eclipse; buscará la versión de 32 bits de JRE

Lo que hice fue instalar la versión de JRE de 32 y 64 bits. Puede obtenerlo del sitio SUN Oracle. El sitio JAVA parece instalar automáticamente la versión de 32 bits de Java. Supongo que es por el navegador web.


2
Como dijo ladookie, el problema probablemente era que el navegador ejecutaba un código incorrecto en el sitio web de Java y
obtenía

1
Speedbaron está completamente justo aquí. Si está modificando su variable ambiental PATH, asegúrese de poner la ruta de la versión correcta. Mi sistema Windows 7 de 64 bits tenía un JRE de 32 bits instalado (no sé por qué), así que instalé la versión de 64 bits y agregué a PATH el nuevo directorio. Parece funcionar bien ahora.
musicliftsme

1
Este fue mi problema. Tenga en cuenta que Windows instala 64 bit a C:\Program Files\Javay 32 bit a C:\Program Files (x86)\Java.
styfle

10

Resultó que todo lo que tenía que hacer era cambiar el 'camino' a:

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

eso lo hizo :)


1
Por cierto, debe usar jdk1.6.0_16 o posterior. Con jdk 1.6.0_14 no puede usar puntos de interrupción correctamente en Eclipse: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H

9

Tengo Windows 7 de 64 bits y tuve el mismo problema con eclipse. Para que funcione, tuve que usar Internet Explorer (versión de 64 bits) para descargar Java. Esta era la única forma de lograr que Java instalara una versión de 64 bits. Cuando utilicé Firefox para instalar Java, instalé automáticamente una versión de 32 bits (¡tan idiota!). Y la versión Eclipse de 64 bits no detectaría la versión java de 32 bits.


Ya no tengo el problema, pero esto parece una buena solución y tiene sentido, sería interesante probar esto con otros navegadores de 64 bits ...
Wallter

7

La solución en pocas palabras:

Haga clic con el botón derecho en Mi PC, haga clic en propiedades, luego en Configuración avanzada del sistema, aparecerá una ventana de propiedades del sistema, en la pestaña avanzada, elija variables de entorno, aparecerá la ventana de variables de entorno, en la sección Variables del sistema, busque la PATHvariable y edite el valor , cambiándolo (la versión; jre6, jre7, etc.) a cualquier jre que esté utilizando, por ejemplo, para el mío:C:\Program Files\Java\jre7\bin


7

No confíe en la variable de ruta de Windows porque se cambia en casi todas las actualizaciones. Por ejemplo, una actualización Java de Chrome (32 bits en una máquina de 64 bits) reemplaza la JVM de 64 bits en todo el sistema por una JVM de 32 bits. Tenga en cuenta también que esta entrada tiene que ser la última en eclipse.ini, de lo contrario no funciona, y, como se indicó de otra manera, eclipse.exe NO evalúa la variable JAVA_HOME.

incluso si tiene JAVA_HOME y Path configurado como válido, es posible que tenga este problema, por lo que la forma más sencilla de hacerlo es abrir su eclipse.ini en su carpeta de instalación de eclipse

-vm

C: \ Archivos de programa \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

reemplace C: \ Archivos de programa \ Java \ jdk1.7.0_71 \ bin \ javaw.exe con la ruta de acceso de su jdk o jre


Voto por esta respuesta para ser la correcta. No confíe en la variable de ruta de Windows porque se cambia en casi todas las actualizaciones. Por ejemplo, una actualización Java de Chrome (32 bits en una máquina de 64 bits) reemplaza la JVM de 64 bits en todo el sistema por una JVM de 32 bits. Tenga en cuenta también que esta entrada tiene que ser la última en eclipse.ini, de lo contrario no funciona. Y, como se indicó de otro modo, eclipse.exe NO evalúa la variable JAVA_HOME. Edite su respuesta en consecuencia.
Heri

Esta es la mejor respuesta, ya que resuelve directamente el problema real. Eclipse está buscando una ruta por un parámetro específico, y ese valor es incorrecto ... así que corregir el valor soluciona el problema.
BuvinJ

6

En su eclipse.iniarchivo, debe actualizar la ruta a la VM para que apunte a la misma ubicación donde javaw.exeestá instalado en su máquina.


6

No te preocupes, este error también me arruinó y fue fatal, y cuando lo recibí, estaba tan frustrado que incluso estaba dando para dejar una programación de Android, pero lo obtuve. Simplemente, primero que todo, copia este código y pega en la variable de tu sistema En camino ...

C: \ Archivos de programa; C: \ Winnt; C: \ Winnt \ System32; C: \ Archivos de programa \ Java \ jre6 \ bin \ javaw.exe

Ahora copie la carpeta "jre" de su ruta como si tuviera "jre" debajo de esta ruta

            C:\Program Files\Java

y pegarlo en su carpeta eclipse significa dónde se ubica su archivo eclipse.exe. como si tuviera mi eclipse configurado en esta ubicación

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

Entonces, dentro de la carpeta eclipse, pegue la CARPETA "jre". Si tienes "jre6", renómbralo como "jre" ... y ejecuta tu eclipse, obtendrás la solución ...

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

OTRA SOLUCIÓN: 2

Si el problema no puede resolverse con los pasos anteriores, siga estos pasos

  1. Copie la carpeta "jre" de su ruta de Java como C: \ Archivos de programa \ Java \ jre6 * etc., y péguela en su directorio de eclipse (¿Dónde está disponible su eclipse?)
  2. Vaya al archivo eclipse.ini, ábralo.
  3. Cambie el directorio de su archivo javaw.exe como

-vmF: \ Softwares \ SOFTEARE DE IDIOMAS \ Configuración de Android \ eclipse Indigo versión 32 Bit \ jre \ bin / javaw.exe

Ahora, esta vez, cuando inicie eclipse, buscará javaw.exe, por lo que buscará la ruta en eclipse.ini, ya que ahora está en la misma carpeta, iniciará javaw.exe y comenzará a funcionar. .

Si todavía tiene alguna consulta, puede volver a hacerla, simplemente vaya a mi perfil y descubra mi identificación de correo electrónico. porque me encanta el foro de desbordamiento de pila, y me convirtió en programador. *


5

Edité mi archivo eclipse.ini para actualizar el JDK recién actualizado. Anteriormente tenía jdk1.7.0_09 y actualicé ahora a jdk1.7.0_80 y eclipse arrojó este error.

Debe estar disponible un Java Runtime Environment (JRE) o Java Development Kit (JDK) para ejecutar Eclipse. No se encontró ninguna máquina virtual Java después de buscar en las siguientes ubicaciones: C: / Archivos de programa / Java / jdk1.7.0_09 / bin / javaw

Después de actualizar eclipse.ini desde,

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

a

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

Eclipse funciona bien.


1
Esta es la solución que funcionó para mí, gracias Lucky. Eclipse carga el JRE al que se hace referencia en el archivo ini, por lo que la respuesta aceptada es incorrecta al sugerir que examina la RUTA del entorno.
Steve Mayne


3

si después de agregar C: \ Archivos de programa \ Java \ jdk1.8.0_92 \ bin en la variable PATH en las variables de entorno, el eclipse dio el mismo error

compruebe el archivo de configuración de eclipse que se encuentra en la carpeta eclipse, debe ver la misma ruta jdk que tiene en C: \ Archivos de programa

ingrese la descripción de la imagen aquí

Espero que sea de ayuda.


2

Cuando tuve ese problema, en mi caso tenía x64 JDK + JRE instalado con x86 Eclipse. Por lo tanto, la instalación de x86 JDK + JRE resolvió mi problema :) También creé la jrecarpeta en la carpeta eclipse y copié la bincarpeta de mi ruta local C:\Program Files (x86)\Java\jre7a ..\eclipse\jre\.


2
  • SO de 64 bits -> Necesita: Java de 64 bits y Eclipse de 64 bits
  • SO de 32 bits -> Necesita: Java de 32 bits y Eclipse de 32 bits

Si actualiza su versión de Java con la actualización predeterminada en su computadora de 64 bits (y tiene un navegador de 32 bits ), Java instalará la versión de 32 bits. Debería encontrar la versión Java de 64 bits e instalarla.


1

Tuve un compañero de trabajo con este problema exacto la semana pasada. Lo arregló instalando la versión x64 de Eclipse y el x64 JDK.

Editar: reutilizó su antiguo espacio de trabajo después de instalar los complementos necesarios, por lo que no debería ser un gran problema


1

Hay una manera más fácil de hacer eso. Simplemente ejecute cmd x64. Escriba cmd x64 para buscar la barra en el menú de inicio y lo encontrará :) O, como alternativa, debe establecer la ruta a los archivos de programa (x86) ... Por ejemplo C: \ Archivos de programa (x86) \ Java \ jre6


1

Simplemente agregue la RUTA JRE PARA Ej: C: \ Archivos de programa \ Java \ jre5 \ bin en la variable de entorno Ponga ";" en medio de cada camino. Luego haga clic en eclipse.exe Funcionará .....


1

La razón por la que obtiene este error es porque eclipse necesita un JRE para iniciarse, que no puede encontrar. El primer lugar donde busca es el directorio actual, luego el archivo eclipse.ini y finalmente la ruta del sistema. Entonces, si no puede encontrar el jvm correcto (las versiones de bits son diferentes) a través de cualquiera de estos tres lugares, cunas

La forma recomendada es editar el archivo eclipse.ini y decirle a eclipse dónde exactamente buscar el vm / jre, incluyendo esta línea en el archivo:

-vm
[ruta a su java.exe] (que generalmente se encuentra en "C: \ Archivos de programa \ Java \ jre7 \ bin")

PD Para editar el eclipse.ini, es posible que deba moverlo, editarlo y luego pegarlo

Fuente: wiki


1

En primer lugar, gracias a YouYou por su solución. Intenté responder por YouYou ( https://stackoverflow.com/a/14464653/801919 ). Inicialmente, no funcionó para mí. Los siguientes son los pasos que necesitaba seguir para que funcione:

  1. Inicialmente, no tenía Java instalado en mi nueva máquina. Entonces, tuve que instalar eso (descargado de: http://java.com/en/download/manual.jsp ).
  2. Estoy ejecutando un sistema operativo de 64 bits. Pero, mientras descargaba, recibí el mensaje que podría ayudarme a elegir qué versión de Java descargar: Choose the 32-bit download to use with a 32-bit browser.Por lo tanto, descargué la versión de 32 bits.
  3. Luego, seguí el procedimiento mencionado en https://stackoverflow.com/a/14464653/801919 , con la esperanza de obtener la solución.
  4. Tengo otro error: Java was started but returned exit code=13
  5. Luego, instalé la versión de 64 bits de Java.
  6. Copiado javaw.exede esa versión.

... Y Eclipse comenzó a trabajar! Yaay!


1

Bueno, esta respuesta es para aquellos que probaron todos los demás y aún no tuvieron suerte, puede ser Android Studio o Eclipsegeneralmente hago esto cuando todo lo demás falla.

  1. Encuentre su carpeta sdk de Android y abra el archivo android.bat con un editor de texto
  2. encontrará algunos comandos como estos al comienzo del archivo,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Cambiarlos a

    set java_exe=< la ruta a su archivo java.exe (se puede encontrar dentro de su carpeta jdk / directorio bin) >

  2. encuentra las lineas

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. Reemplácelo con set swt_path=< la ruta a su respectivo archivo swt.jar, para x86 está en sdk \ tools \ lib \ x86 y para x64 en sdk \ tools \ lib \ x86_64 >
  2. Guarde y cierre el archivo y ahora está listo para comenzar.

1

Intente configurar su JAVA_HOME en la carpeta correcta. Google para configurar variables de entorno en Windows.


Seguí estas instrucciones: wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.html pero fue en vano
Wallter

Odio decirlo ... pero ¿has reiniciado?
Topher Fangio

No es necesario reiniciar para instalar Java.
Thorbjørn Ravn Andersen

1
tampoco es necesario JAVA_HOME. Es la RUTA la que se utiliza para encontrar el javaw.exe. (JAVA_HOME es utilizado por otras aplicaciones como Ant, por lo que no está mal configurarlo de todos modos)
user85421

1

También me he encontrado con este problema. Mi caso es el siguiente:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

En el 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

Descubrí que sus tipos de valor de registro Pathson diferentes, así que verifiqué si la ruta es válida o no con el siguiente comando:

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

Como resultado, restablezco el entorno local (usuario actual) mediante los siguientes 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

Pero, en el proceso actual, no puede propagar esos cambios a otros procesos en ejecución.

Sin embargo, si modifica directamente las variables de entorno del usuario en el Editor del registro,

esas modificaciones a las variables de entorno no dan como resultado un cambio inmediato. Por ejemplo, si inicia otro símbolo del sistema después de realizar los cambios, las variables de entorno reflejarán los valores anteriores (no los actuales). Los cambios no surten efecto hasta que cierre la sesión y luego vuelva a iniciarla.

Para efectuar estos cambios sin tener que cerrar sesión, transmita un mensaje WM_SETTINGCHANGE a todas las ventanas del sistema, para que cualquier aplicación interesada (como el Explorador de Windows, el Administrador de programas, el Administrador de tareas, el Panel de control, etc.) pueda realizar una actualización.

Consulte los detalles en Cómo propagar variables de entorno al sistema

Aquí, doy un script de PowerShell para hacerlo:

# 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

Verifique Ventana> Preferencias> Java> JRE instalados. Asegúrate de que haya algo allí; Si no hay, agregue uno.

¿Actualizaste recientemente tu JDK?


Sí, intenté agregar el complemento de Android. Pero no (como dijo Topher Fangio), no puedo iniciar Eclipse ahora.
Wallter

0

El JDK no instala una JVM en la ruta predeterminada.

A menos que necesite herramientas externas para ejecutar como hormiga, el no JDK es suficiente para que Eclipse se ejecute. La forma más fácil de instalar tal JVM es ir a http://java.com y dejar que instale lo que quiera instalar.

Luego, haga doble clic en el binario Eclipse nuevamente.


Lo reinstalé (incluso me preguntó si quería reinstalarlo) sin resultado. (Hice tanto el complemento Google Chrome 14, o algo así y el Firefox)
Wallter

¿Fuiste a java.com? ¿No es javasoft.com?
Thorbjørn Ravn Andersen

0

establezca la variable JAVA_HOME y ad JAVA_HOME / bin en la variable de ruta de evnrionment.


así: "C: \ Archivos de programa (x86) \ Java; C: \ Archivos de programa (x86) \ Java \ jdk1.6.0_14 \ bin"? - todavía no funciona :)
Wallter

Hacer referencia a JAVA_HOME en la variable de ruta requiere incrustarlo:% JAVA_HOME% \ bin
Heri

Para mí (Windows 10 64 bit + Eclipse 4.10) el truco consistía en agregar, además de la JAVA_HOMEvariable de entorno, la JRE_HOMEvariable, que se estableció en la ubicación de la javaw.exeubicación (que probablemente sea siempre la carpeta bin del JDK que está instalado )
Guy Avraham

0

Tuve el mismo problema (Windows 7 x64, 64 bits JDK, 32 bits Eclipse), y encontré 2 soluciones:

  • Instale la versión de 64 bits de Eclipse (que se encuentra haciendo clic en la pestaña "Desarrollos de desarrollo" en la página de descargas).
  • Instale la versión de 32 bits del JDK.

Vea, pero estaba usando Windows 7 x86 donde yo estaba usando x64 --- como otros han dicho, este problema puede haber sido un error por parte de SUN en su programación de cómo su página web 'detecta la versión' (es decir, x64 o x86) debería usar
Wallter

Corrección, estaba usando Windows 7 x64
Tim

0

Yo tuve el mismo problema. La forma más fácil de solucionarlo fue instalar el JRE y el eclipse como x86 o x64. Cuando su tipo de bit no coincidía, eclipse no podía encontrarlo. Entonces, si no es un gran problema para usted desinstalar y reinstalar para que coincidan, lo haría.

Terminé instalando: Java Runtime Environment 1.7.0.3 (64 bits) y Eclipse Indigo (3.7) (64 bits)

Entonces simplemente funciona.


0

Cuando copié solo javaw, se produjo el segundo error, no hay un archivo java.dll, cuando lo copié también, eclipse no se inició, lo que hice fue copiar toda la carpeta jdk a la carpeta eclipse y cambiar el nombre de id a jre. Problema resuelto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.