Eclipse - нет Java (JRE) / (JDK) ... нет виртуальной машины

Я пытаюсь получить Eclipse v3.5 (Galileo) для повторного запуска на моем компьютере-я запускал его раньше без проблем, но теперь Я продолжаю получать эту ошибку:

для запуска Eclipse должна быть доступна среда выполнения Java (JRE) или Java Development kit (JDK). Виртуальная машина Java не была найдена после поиска в следующих местах: C:eclipsejrejavaw.исполняемый javaw, который.exe в вашем текущем пути

Я только что сделал новую установку как JDK, так и SDK.

У меня есть Windows 7 (x64).

Что это? Как это исправить?

Я не могу запустить ни один из ipconfig / tracert / или ping.

30 ответов


Eclipse по умолчанию попытается запустить по умолчанию"java.exe" (первая ссылается PATH)

три вещи, чтобы помнить:

  • "установка" a JRE или JDK может быть так же просто, как распаковка или копирование с другого компьютера: нет никаких специальных шагов установки, и вы можете иметь столько различных версий JVM (1.4, 5.0, 6.0...) как вы хотите, "установлен" (скопирован) почти в любом месте на вашем диске.
  • I рекомендую всегда запускать Eclipse с последний JRE возможно (извлечь выгоду из последняя точка доступа эволюции). Вы можете:

просто скопируйте этот файл :

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

в папку Eclipse

* Примечание только для Windows

Replacing javaw.exe in Eclipse Folder


все остальные ответы о настройке только на JAVA_HOME не совсем верно. затмение делает, а именно не посмотрите JAVA_HOME. Посмотрите ближе на сообщение об ошибке:

...в текущем путь

он буквально сказал PATH, а не JAVA_HOME.

Rightclick Мой Компьютер и выбрать свойства (или нажмите Winkey+пауза), перейти на вкладку дополнительно, нажмите кнопку Переменные Среды, в Системные Переменные список внизу выберите Path (нет, не Classpath), нажмите кнопку редактировать и добавить ;c:\path\to\jdk\bin до конца значения.

альтернативно и если нет, вы также можете добавить JAVA_HOME переменная окружения и использовать ее в PATH. В том же диалоге нажмите новая и добавить JAVA_HOME со значением c:\path\to\jdk. Затем вы можете добавить ;%JAVA_HOME%\bin до конца значения Path настройка.


откройте Системные свойства Windows с панели управления и найдите раздел переменные среды:

  • добавьте запись JAVA_HOME, указывающую на каталог, в котором установлен JDK (например C:\Program Files\Java\jre6)
  • найдите запись пути и добавьте следующее в конец; %JAVA_HOME%\bin
  • " ОК " изменения
  • перезапустите eclipse, чтобы он знал о новой среде

большинство инструментов Java теперь будут можно найти установку Java либо с помощью переменной среды JAVA_HOME, либо путем поиска java.ехе / javaw, который.exe в переменной среды Path.


Если вы загрузите 64-разрядную версию Eclipse; он будет искать 64-разрядную версию JRE. Если вы загрузите 32-разрядную версию Eclipse; он будет искать 32-разрядную версию jre

то, что я сделал, это установить как 32, так и 64-разрядную версию JRE. Вы можете получить это с сайта SUN Oracle. Сайт JAVA, похоже, автоматически устанавливает 32-разрядную версию Java. Думаю, это из-за браузера.


оказалось, что все, что мне нужно было изменить 'path' в:

"C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem; Файлы C:\Program (для x86)\Ява; C:\Program Файлы (x86)\Java\jdk1.6.0_14\bin"

вот и все:)


У меня windows 7 64-бит, и у меня была такая же проблема с eclipse. Чтобы заставить его работать, мне пришлось использовать internet explorer (64-разрядная версия) для загрузки java. Это был единственный способ заставить java установить 64-разрядную версию. Когда я использовал firefox для установки java, он автоматически установил 32-битную версию (так идиотски!). И 64-разрядная версия Eclipse не обнаружит 32-разрядную версию java.


решение в двух словах:

Правой Кнопкой Мыши на мой компьютер, выберите Свойства, потом Дополнительные параметры системы, в окне "Свойства системы" появится на вкладке Дополнительно выберите переменные среды переменные среды окошко, в разделе системные переменные , искать PATH переменная и отредактируйте значение, изменив его (версию; jre6, jre7 и т. д.) На любую JRE, которую вы используете, e.g для моего:C:\Program Files\Java\jre7\bin


не волнуйтесь, я также был разрушен этой ошибкой и фатальным, и когда я получил его, я был так расстроен, даже я давал оставить Android-программирование, но я получил его, просто в первую очередь скопируйте этот код и вставьте в системную переменную под path ...

C:\Program Файлы;C:\Winnt;C:\Winnt\System32;C:\Program Файлы\Java\jre6\bin\javaw.exe

Теперь скопируйте "jre"папку С вашего пути, как у меня есть " jre" под этим путем

            C:\Program Files\Java

и вставьте его в папку eclipse означает, Где ваше затмение.exe файл помещается. как у меня затмение в этом месте

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

поэтому внутри папки eclipse вставьте папку "jre". Если у вас есть "jre6", переименуйте его в "jre"....и запустите eclipse, вы получите решение...

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

ДРУГОЕ РЕШЕНИЕ: 2

Если проблема не может решить с помощью вышеуказанных шагов, выполните следующие действия эти шаги

  1. скопируйте папку "jre" из вашего пути Java, как C:\Program файлы\Java\jre6* и т. д., и вставьте его в каталог eclipse(где находится ваше eclipse доступно)
  2. перейти к затмению.ini-файл , откройте его.
  3. измените каталог вашего javaw.EXE-файл как

-vmF:\программное обеспечение\языки SOFTEARE\Android Setup\eclipse Indigo версия 32 бит\jre\bin/javaw.exe

Теперь на этот раз, когда вы начнете затмение, он будет искать javaw.exe, поэтому он будет искать путь в затмение.ini, так как теперь он находится в той же папке, поэтому он запустит javaw.exe и он начнет работать.

Если у вас все еще есть какой-либо запрос, вы можете задать его снова, просто зайдите в мой профиль и узнайте мой электронный идентификатор. потому что я люблю форум Stack overflow, и это сделало меня программистом.*


Не полагайтесь на переменную пути windows, потому что она изменяется почти в каждом обновлении. Например. обновление chrome (32bit на 64-разрядной машине) java заменяет общесистемный 64-разрядный JVM на 32-разрядный JVM. Отметим также, что эта запись должна быть последней в затмение.ini, иначе он не работает, и - как указано иначе-переменная JAVA_HOME не оценивается eclipse.исполняемый.

даже если ваш JAVA_HOME и путь настроены действительны, их может иметь эту проблему, поэтому самый простой способ сделать-открыть eclipse.ini в папке установки eclipse

-vm

C:\Program файлы\Java\jdk1.7.0_71\bin\javaw.exe

заменить C:\Program файлы\Java\jdk1.7.0_71\bin\javaw.exe с вашим JDK или JRE ' s path


в своем eclipse.ini файл, вам нужно обновить путь к виртуальной машине, чтобы указать на то же место, где javaw.exe устанавливается на вашем компьютере.


редактировать мои затмения.ini-файл для обновления обновленного JDK. Раньше у меня был jdk1.7.0_09 и обновлен до jdk1.7.0_80 и eclipse выдали эту ошибку.

для запуска Eclipse должна быть доступна среда выполнения Java (JRE) или Java Development Kit (JDK). Нет Виртуальная машина Java была найдена после поиска следующего местонахождение: C:/Program файлы / Java / jdk1.7.0_09 / bin / javaw

после обновления затмение.ini от,

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

to

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

Eclipse работает нормально.


создайте пакетный файл в папке eclipse и напишите в нем:

eclipse -vm C:\Sun\SDK\jdk\jre\bin\javaw.exe

посмотреть http://wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F


Если после добавления C:\Program файлы\Java\jdk1.8.0_92\bin в переменной PATH в переменных среды eclipse дал ту же ошибку

проверьте файл настроек конфигурации eclipse, который находится в папке eclipse, вы должны увидеть тот же путь jdk, который у вас есть в C:\program файлы

enter image description here

надеюсь, это поможет.


когда у меня была такая проблема, в моем случае у меня был x64 JDK + JRE, установленный с x86 Eclipse. Так Установка x86 JDK + JRE решила мою проблему :) также я создал jre папка в папке eclipse и скопирована bin папка из моего локального пути C:\Program Files (x86)\Java\jre7 to ..\eclipse\jre\.


  • 64-разрядная ОС--> вам нужно: 64-разрядная Java и 64-разрядная Eclipse
  • 32-разрядная ОС--> вам нужно: 32-разрядная Java и 32-разрядная Eclipse

если вы обновите свою версию java с обновлением по умолчанию на своем 64-битном компьютере (и у вас есть 32-разрядный браузер), java установит 32-разрядную версию. Вы должны найти 64-битную версию java и установить ее.


У меня была коллега с этой проблемой на прошлой неделе. Он исправил это, установив x64-версию Eclipse и x64 JDK.

Edit: он повторно использовал свое старое рабочее пространство после установки необходимых плагинов, так что это не должно быть большой проблемой


есть более простой способ сделать это. Просто запустите cmd x64. Введите cmd x64 в строке поиска в меню "Пуск" и вы найдете его :) или, альтернативно, вы должны установить путь к program files (x86) ... Например C:\Program файлы (x86)\Java\jre6


просто добавьте путь JRE для Ex: C:\Program Files\Java\jre5\bin в переменной окружения Положите "; " между каждым путем. Затем нажмите кнопку затмение.exe это будет работать.....


причина, по которой вы получаете эту ошибку, заключается в том, что eclipse нужен JRE для запуска, который он не может найти. Первое место, которое он ищет, - это текущий каталог, а затем eclipse.ini-файл, а затем, наконец, системный путь. Поэтому, если он не может найти правильный jvm (битовые версии разные) через любое из этих трех мест, это шпаргалки

рекомендуемый способ-редактировать eclipse.ini-файл и скажите eclipse, где именно искать vm/ jre, включив эту строку в файл:

-vm
[путь к java.ехе] (что вообще под "C:\Program файлы\jre7\\Ява бин")

P. S. Для редактирования затмение.ini, вам может потребоваться переместить его, отредактировать, а затем вставить обратно

источник: - wiki


прежде всего спасибо YouYou за его решение! Я попробовал ответить вам (https://stackoverflow.com/a/14464653/801919). Поначалу это не сработало. Ниже приведены шаги, которые мне нужно предпринять, чтобы заставить его работать:

  1. первоначально у меня не было Java, установленной на моей новой машине. Итак, мне пришлось установить это (загружено с: http://java.com/en/download/manual.jsp).
  2. я запускаю 64-разрядную ОС. Но, загружая, я получил сообщение, которое могло бы помочь мне в выборе версии Java для загрузки:Choose the 32-bit download to use with a 32-bit browser. следовательно, я загрузил 32-разрядную версию.
  3. затем я последовал процедуре, упомянутой в https://stackoverflow.com/a/14464653/801919, надеясь получить решение.
  4. у меня есть другая ошибка:Java was started but returned exit code=13
  5. затем я установил 64-разрядную версию Java.
  6. скопировал javaw.exe от этой версии.

...И затмение началось работает!!! Ура-а-а!


Ну, этот ответ для тех, кто пробовал все из них другие еще не повезло, может быть, это Android studio или Eclipse Я обычно делаю это, когда все остальное терпит неудачу.

  1. найдите папку Android sdk и откройте android.летучая мышь!--9-- > файл с текстовым редактором
  2. вы найдете некоторые команды, как это в начале файл

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. изменить их в

    set java_exe= путь к вашей java.exe-файл (можно найти в папке jdk/каталоге bin)>

  2. найти строки

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. замените его на set swt_path=путь к СВТ.jar-файл, для x86 это в \SDK-инструментов\Либ\x86 и для x64 в инструменты\СДК\Либ архитектуру x86_64\>
  2. сохранить и закрыть файл, и теперь вы хорошо идти..

попробуйте установить JAVA_HOME в правильную папку. Google для установки переменных среды в Windows.


Я тоже столкнулся с такой проблемой. Мой случай таков:

enter image description here enter image description here

текст:

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\Tools\binn\;C:\Progra
m Files (x86)\Perforce;C:\ProgramFiles0 Editor;C:\Program Files\Microsoft SQL Server0\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

Я нашел их типы значения реестра Path отличаются, поэтому я проверил, является ли путь допустимым или нет следующей командой:

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

в результате я сбрасываю локальную (текущую пользовательскую) среду следующими командами (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\Tools\binn\;C:\Program Files (x86)\Perforce;C:\ProgramFile
s0 Editor;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\ProgramFiles\Git\cmd;C:\Program Files (x86)\Skype\
Phone\;%JAVA_HOME%\bin;C:\ProgramFiles\nodejs

но в текущем процессе он не может распространять эти изменения на другие запущенные процессы.

однако, если вы непосредственно изменяете переменные среды пользователя в Редакторе реестра,

эти изменения переменных среды не привести к немедленным изменениям. Например, если вы запустите другой Командная строка после внесения изменений переменные среды будет отражать предыдущий (не текущее значение. Изменений нет вступили в силу, пока вы не выйдите и снова войдите в систему.

чтобы осуществить эти изменения без необходимости выхода из системы, передайте WM_SETTINGCHANGE сообщение для всех окон в системе, так что любой заинтересованные приложения (например, Проводник Windows, менеджер программ, Диспетчер задач, Панель управления и т. д.) может выполнять обновление.

подробности на как распространить переменные среды на система

здесь я даю сценарий powershell для этого:

# 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

Проверить Окно > Настройки > Java > Установленные JREs. Убедитесь, что там что-то есть; если нет, добавьте один.

вы недавно обновили свой JDK?


JDK не устанавливает JVM в путь по умолчанию.

Если вам не нужны внешние инструменты для запуска, как ant, не-JDK достаточно для запуска Eclipse. Самый простой способ установить такую JVM-перейти вhttp://java.com и пусть он устанавливает все, что он хочет установить.

затем дважды щелкните двоичный файл Eclipse еще раз.


установите переменную JAVA_HOME и ad JAVA_HOME / bin в переменную пути evnrionment.


У меня была та же проблема (Windows 7 x64, 64bit JDK, 32bit Eclipse), и я нашел 2 решения:

  • установите 64-разрядную версию Eclipse (найдено, щелкнув вкладку "сборки разработки" на странице загрузки.)
  • установите 32-битную версию JDK.

У меня была та же проблема. Простой способ, для меня, чтобы исправить это, было установить как JRE, так и eclipse как x86 или x64. Когда их битовый тип не совпадал, eclipse не смог его найти. Поэтому, если для вас не имеет большого значения удаление и переустановка, чтобы они соответствовали, я бы это сделал.

Я закончил установку: Среды выполнения Java 1.7.0.3 (64-bit) и Eclipse Indigo (3.7) (64-разрядная версия)

тогда это просто работает.


когда я скопировал только javaw, произошла вторая ошибка, нет java.dll-файл, когда я его скопировал, eclipse не запустился, я сделал то, что скопировал всю папку jdk в папку eclipse и переименовал id в jre. Проблема решена.