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

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

Для запуска Eclipse должна быть доступна Java Runtime Environment (JRE) или Java Development Kit (JDK). Никакая виртуальная машина Java не была найдена после поиска в следующих местах: C:\затмение\JRE\javaw.exe javaw.exe в текущем PATH

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

У меня Windows 7 (x64).

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

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

Ответы

Ответ 1

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

Три вещи, которые нужно запомнить:

  • "Установка" JRE или JDK может быть такой же простой, как распаковка или копирование с другого компьютера: никаких специальных шагов установки нет, и вы можете иметь много разных версий JVM (1.4, 5.0, 6.0...), как вы хотите, "установлены" (скопированы) почти в любом месте вашего диска.
  • Я бы рекомендовал всегда запускать Eclipse с помощью последней версии JRE (чтобы воспользоваться эволюцией последней популярности hotspot). Ты можешь:
  • JVM, с которым вы будете ссылаться в своем сеансе Eclipse, не всегда используется для запуска Eclipse, потому что:
    • Вам нужно только запустить JRE для запуска Eclipse, но после запуска Eclipse вы должны зарегистрировать JDK для своих проектов (особенно для источников Java и отладки, а также теоретически для компиляции, но Eclipse имеет собственный компилятор Java) Примечание. Вы можете зарегистрировать только JRE в Eclipse, потому что этого достаточно для запуска вашей программы, но снова JDK позволит больше операций.
    • Несмотря на то, что зарегистрированная по умолчанию Java в Eclipse - это та, которая используется для запуска сеанса, вы можете захотеть зарегистрировать старый SDK (включая не-Sun), чтобы запускать/отлаживать ваши программы с помощью JRE, подобной который фактически будет использоваться в производстве.

Installed JREs


Июнь 2012, jmbertucci комментарии:

Я запускаю Windows 7 64-бит, и у меня установлена ​​32-разрядная JRE. Я загрузил 64-битную Eclipse, которая ищет 64-битную JRE. Поскольку у меня не было 64-битной JRE, она выдала ошибку, что имеет смысл.

Я пошел на страницу установки вручную Java (которая не была так же доступна, как вам хотелось бы), и установила 64-разрядную версию. См. " Загрузка Java для всех операционных систем". Это все, что мне нужно.


Апрель 2016: Стив Майн добавляет в комментарии:

Мне пришлось отредактировать файл eclipse.ini для ссылки на правильный путь Java - Eclipse вообще не использует среду PATH, когда есть значение в eclipse.ini.

Ответ 2

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

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

в папку Eclipse

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

Replacing javaw.exe in Eclipse Folder

Ответ 3

Все остальные ответы об установке только JAVA_HOME не совсем правильные. Eclipse делает именно не в JAVA_HOME. Посмотрите на сообщение об ошибке:

... в вашем текущем PATH

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

Rightclick My Computer и выберите "Свойства" (или нажмите Winkey + Pause), перейдите на вкладку "Дополнительно", нажмите кнопку "Переменные среды" в списке "Системные переменные" внизу, выберите PATH (no, не Classpath), нажмите "Изменить" и добавьте ;c:\path\to\jdk\bin в конец значения.

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

Оказалось, что все, что мне нужно было сделать, это изменить "путь" на:

"C:\Windows\system32; C:\Windows, C:\Windows\System32\Wbem; C:\Program Files (x86)\Java; C:\Program Files (X86)\Java\jdk1.6.0_14\Bin"

который сделал это:)

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

C:\Program Files; C:\Winnt; C:\Winnt\System32; C:\Program Files\Java\jre6\Bin\javaw.exe

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

            C:\Program Files\Java

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

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

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

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

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

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

  • Скопируйте папку "jre" с вашего пути Java, например C:\Program Files\Java\jre6 * etc и вставьте его в каталог eclipse (где ваше затмение доступны)
  • Перейдите в файл eclipse.ini, откройте его.
  • Измените каталог вашего файла javaw.exe, например

-vmF:\Software\LANGUAGES SOFTEARE\Android Setup\eclipse Версия Индиго 32 Bit\jre\bin/javaw.exe

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

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

Ответ 10

Не полагайтесь на переменную пути Windows, потому что она изменяется почти в каждом обновлении. Например. хром (32 бит на 64-битной машине) java-обновление заменяет системную 64-битную JVM на 32-разрядную JVM. Также обратите внимание, что эта запись должна быть последней в eclipse.ini, иначе она не будет работать. И - как указано иначе - переменная JAVA_HOME НЕ оценивается eclipse.exe.

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

-vm

C:\Program Files\Java\jdk1.7.0_71\bin\javaw.exe

заменить C:\Program Files\Java\jdk1.7.0_71\bin\javaw.exe с помощью пути jdk или jre `/

Ответ 11

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

Ответ 12

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

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

После обновления eclipse.ini из

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

к

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

Eclipse отлично работает.

Ответ 14

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

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

введите описание изображения здесь

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

Ответ 15

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

Ответ 16

  • 64-разрядная ОС → Вам нужны: 64-разрядные Java и 64-разрядные Eclipse
  • 32-разрядная ОС → Вам нужно: 32-разрядная Java и 32-разрядная Eclipse

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

Ответ 17

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

Ответ 18

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

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

Ответ 19

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

Ответ 20

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

Ответ 21

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

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

-vm
[путь к вашему java.exe] (который обычно находится в разделе "C:\Program Files\Java\jre7\bin" )

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

Источник: - wiki

Ответ 22

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

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

... И Eclipse начал работать!!! Yaay!

Ответ 23

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

  • Найдите папку sdk для Android и откройте файл android.bat с помощью текстового редактора
  • вы найдете некоторые команды, подобные этим в начале файла,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Измените их на

    set java_exe= < путь к вашему файлу java.exe(можно найти в каталоге jdk folder/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. Замените его с помощью набора swt_path= < пути к вашему соответствующему файлу swt.jar, для x86 он находится в sdk\tools\lib\x86 и для x64 в sdk\tools\lib\x86_64 >
  2. Сохраните и закройте файл, и теперь вам хорошо идти.

Ответ 24

Я тоже столкнулся с этой проблемой. Мое дело следующее:

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\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

Я обнаружил, что их типы значения реестра 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\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

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

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

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

Чтобы выполнить эти изменения без необходимости выхода из системы, передайте сообщение 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 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)
{
    [email protected]"
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

Ответ 25

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

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

Ответ 26

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

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

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

Ответ 27

установите переменную JAVA_HOME и объявление JAVA_HOME/bin в переменную пути evnrionment.

Ответ 28

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

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

Ответ 29

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

Я закончил установку: Java Runtime Environment 1.7.0.3 (64-разрядная версия) и Eclipse Indigo (3,7) (64-разрядная версия)

Затем он просто работает.

Ответ 30

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