Я пытаюсь запустить 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.
Eclipse по умолчанию попытается запустить с по умолчанию "java.exe
" (первый, на который ссылается ваш PATH
)
Три вещи, которые нужно запомнить:
PATH
отсутствует.
Июнь 2012, jmbertucci комментарии:
Я запускаю Windows 7 64-бит, и у меня установлена 32-разрядная JRE. Я загрузил 64-битную Eclipse, которая ищет 64-битную JRE. Поскольку у меня не было 64-битной JRE, она выдала ошибку, что имеет смысл.
Я пошел на страницу установки вручную Java (которая не была так же доступна, как вам хотелось бы), и установила 64-разрядную версию. См. " Загрузка Java для всех операционных систем". Это все, что мне нужно.
Апрель 2016: Стив Майн добавляет в комментарии:
Мне пришлось отредактировать файл
eclipse.ini
для ссылки на правильный путь Java - Eclipse вообще не использует средуPATH
, когда есть значение вeclipse.ini
.
Скопируйте этот файл:
c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe
в папку Eclipse
* Примечание проверено только для Windows
Все остальные ответы об установке только 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
.
Откройте "Системные свойства Windows" с панели управления и найдите раздел переменных среды:
Большинство инструментов Java теперь смогут найти вашу установку Java либо с помощью переменной окружения JAVA_HOME, либо путем поиска java.exe/javaw.exe в переменной среды Path.
Если вы загружаете 64-разрядную версию Eclipse; он будет искать 64-разрядную версию JRE. Если вы загрузите 32-разрядную версию Eclipse; он будет искать 32-разрядную версию JRE
Что я сделал, так это установить 32 и 64-разрядную версию JRE. Вы можете получить это с сайта SUN Oracle. Сайт JAVA, похоже, автоматически устанавливает 32-разрядную версию Java. Я предполагаю, что из-за веб-браузера.
Оказалось, что все, что мне нужно было сделать, это изменить "путь" на:
"C:\Windows\system32; C:\Windows, C:\Windows\System32\Wbem; C:\Program Files (x86)\Java; C:\Program Files (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 и т.д.) на все, что вы используете, например, для моего: C:\Program Files\Java\jre7\bin
Не полагайтесь на переменную пути 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 `/
Не волнуйтесь, я тоже был испорчен этой ошибкой и фатальным, и когда я ее получил, я был настолько расстроен, что даже я давал оставить программирование на андроиде, но я получил его, просто сначала скопируйте этот код и вставьте его ваша системная переменная В пути...
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
Если проблема не решена с помощью вышеуказанных шагов, выполните следующие шаги
-vmF:\Software\LANGUAGES SOFTEARE\Android Setup\eclipse Версия Индиго 32 Bit\jre\bin/javaw.exe
Теперь, когда вы запустите eclipse, он будет искать javaw.exe, поэтому он будет искать путь в eclipse.ini, так как он теперь находится в той же папке, поэтому он запустит javaw.exe, и он начнет работать.
Если у вас все еще есть запрос, вы можете задать его снова, просто зайдите в мой профиль и узнайте мой идентификатор электронной почты. потому что я обожаю форум, и это сделало меня программистом. *
Отредактировал файл 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 отлично работает.
В вашем файле eclipse.ini
вам необходимо обновить путь к виртуальной машине, чтобы указать на то же место, где javaw.exe
установлен на вашем компьютере.
если после добавления C:\Program Files\Java\jdk1.8.0_92\bin в переменной PATH в переменных среды eclipse дал ту же ошибку
проверьте файл настроек конфигурации eclipse, который находится в папке eclipse, вы должны увидеть тот же путь jdk, который у вас есть в C:\program Files
Надеюсь, это поможет.
создайте пакетный файл в папке eclipse и напишите в нем:
eclipse -vm C:\Sun\SDK\jdk\jre\bin\javaw.exe
если вы обновите версию Java по умолчанию на своем 64-битном компьютере (и у вас есть 32-битный браузер), java установит 32-битную версию. Вы должны найти 64-битную версию Java и установить ее.
Когда у меня была такая проблема, у меня был x64 JDK + JRE, установленный с x86 Eclipse. Поэтому установка x86 JDK + JRE решила мою проблему:) Также я создал папку jre
в папке eclipse и скопировал папку bin
из моего локального пути C:\Program Files (x86)\Java\jre7
в ..\eclipse\jre\
.
Я тоже столкнулся с этой проблемой. Мое дело следующее:
В тексте:
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)
{
$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
Ну, этот ответ для тех, кто попробовал всех из них, еще не повезло, может быть, это студия Android или Eclipse
, я обычно делаю это, когда все остальное выходит из строя.
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF
Измените их на
set java_exe=
< путь к вашему файлу java.exe(можно найти в каталоге jdk folder/bin)
найдите строки
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
swt_path=
< пути к вашему соответствующему файлу swt.jar, для x86 он находится в sdk\tools\lib\x86 и для x64 в sdk\tools\lib\x86_64 > Прежде всего спасибо YouYou за его решение! Я попробовал ответить YouYou (https://stackoverflow.com/questions/2030434/eclipse-no-java-jre-jdk-no-virtual-machine). Первоначально это не сработало для меня. Ниже приведены шаги, которые я должен предпринять, чтобы заставить его работать:
Choose the 32-bit download to use with a 32-bit browser.
Следовательно, я скачал 32-битную версию.Java was started but returned exit code=13
javaw.exe
из этой версии.... И Eclipse начал работать!!! Yaay!
Причина, по которой вы получаете эту ошибку, заключается в том, что для запуска eclipse требуется JRE, чего он не может найти. Первое место, которое он ищет, это текущий каталог, затем файл eclipse.ini и, наконец, системный путь. Так что, если он не может найти правильный jvm (версии бит разные) через любое из этих трех мест, он шпаргалки
Рекомендуемый способ - отредактировать файл eclipse.ini и сказать eclipse, где именно искать vm/jre, включив эту строку в файл:
-vm
[путь к вашему java.exe] (который обычно находится в разделе "C:\Program Files\Java\jre7\bin" )
P.S. Чтобы отредактировать eclipse.ini, вам может потребоваться переместить его, отредактировать, а затем вставить обратно
Источник: - wiki
Просто добавьте JRE PATH FOR Ex: C:\Program Files\Java\jre5\bin в переменной окружения Положил ";" между каждым путем. Затем нажмите eclipse.exe. Он будет работать.....
Существует более простой способ сделать это. Просто запустите cmd x64. Введите cmd x64 в строку поиска в меню "Пуск" ant, вы найдете ее:) Или, альтернативно, вы должны установить путь к программным файлам (x86)... Например, C:\Program Files (x86)\Java\jre6
У меня был сотрудник с этой точной проблемой на прошлой неделе. Он исправил это, установив x64 версию Eclipse и x64 JDK.
Изменить: он повторно использовал свое старое рабочее пространство после установки необходимых плагинов, поэтому это не должно быть проблемой.
Попробуйте установить JAVA_HOME в нужную папку. Google для установки переменных среды в Windows.
Сначала перейдите к компьютеру, затем свойства, а затем расширенные системные настройки, а затем расширенные
(3-е меню)
а затем нажмите кнопку "Переменные среды" внизу.
К пути в переменных среды добавьте:
C:\Program Files\Java\jdk1.8.0_102\bin\;C:\Program Files\Java\jdk1.8.0_102\lib\;
и ошибка исчезнет. Это лучший.
Другой способ - скопировать папку jre (C:\Program Files\Java\jre1.8.0_102
) в
E:\eclipse-jee-indigo-SR2-win32\eclipse
папка. Тогда ошибка исчезнет.
Одной из проблем является конфликт между версией Eclipse-64bit и нашей установкой Java, представляющей собой 32-разрядную версию. Это не легко решается, потому что страница установки Java не дает возможности для 64-битной версии - она предполагает 32-битную и загружает и устанавливает 32-битную версию. Чтобы решить эту проблему, выполните следующие действия:
jre7
из C:/program files/Java/
и скопируем ее в нашей установочной папке Eclipse.jre
.Установите Eclipse.
- launcher.appendVmargs -vm C:\Program Files\Java\jdk1.7.0_79\jre\bin\javaw.exe -vmargs
Когда я копировал только javaw, произошла вторая ошибка, нет файла java.dll, когда я его тоже скопировал, затмение не запустилось, я сделал то, что я скопировал всю папку jdk в папку eclipse и переименовал идентификатор к jre. Проблема решена.
У меня была та же проблема. Простым способом для меня было установить как JRE, так и eclipse как x86 или x64. Когда их тип бит не совпал, eclipse не смог его найти. Итак, если вам не сложно удалить и переустановить, чтобы они соответствовали, я бы сделал это.
Я закончил установку: Java Runtime Environment 1.7.0.3 (64-разрядная версия) и Eclipse Indigo (3,7) (64-разрядная версия)
Затем он просто работает.
У меня была такая же проблема (Windows 7 x64, 64bit JDK, 32bit Eclipse), и я нашел 2 решения:
установите переменную JAVA_HOME и объявление JAVA_HOME/bin в переменную пути evnrionment.
JDK не устанавливает JVM в путь по умолчанию.
Если вам не нужны внешние инструменты для работы, например ant, для запуска Eclipse достаточно не-JDK. Самый простой способ установки такой JVM - перейти к http://java.com и позволить ему устанавливать все, что захочет установить.
Затем дважды щелкните двоичный файл Eclipse.
Проверить окно > Настройки > Java > Установленные JRE. Убедитесь, что там что-то есть; если нет, добавьте его.
Вы недавно обновили свой JDK?
Просто скачайте Java Runtime Environment (JRE). Это сработало для меня!
Java Runtime Environment
- это JRE, а не SDK ...