Eclipse - немає Java (JRE) / (JDK)… немає віртуальної машини


278

Я намагаюся змусити Eclipse v3.5 (Galileo) повторно запустити на своєму комп’ютері - я запускав його раніше без проблем, але тепер я продовжую отримувати цю помилку:

Для запуску програми Eclipse повинні бути наявними середовище виконання Java (JRE) або комплект для розробки Java (JDK). Не знайдено віртуальної машини Java після пошуку в таких місцях: C: \ eclipse \ jre \ javaw.exe javaw.exe у вашому поточному PATH

Я тільки що зробив нову установку як JDK, так і SDK.

У мене Windows 7 (x64).

Що з цим? Як це виправити?

Я не можу запустити жоден ipconfig / tracert / або ping.


3
Java Runtime Environmentце JRE не SDK ...
користувач85421

1
Встановити JRE - це надає javaw.exe на вашому шляху. JDK - ні.
Thorbjørn Ravn Andersen

12
@Carlos, кожен JDK приносить приватний JRE.
Thorbjørn Ravn Andersen

3
@ Thorbjørn: і в чому сенс? Я знаю це, а також те, що JDK також приносить публічний JRE. Я писав, що "Java Runtime Environment - це не SDK", але вам потрібно прочитати оригінальний пост (перш ніж його редагувати 11 січня), щоб зрозуміти, чому я його написав: "A Java Runtime Environment ( SDK ) or ..."
користувач85421

11
Якщо ви нещодавно встановили JDK в інший шлях після встановлення Eclipse, тоді ви можете зіткнутися з цією проблемою. Це відбувається тому, що жорсткий код eclipse кодує шлях JDK в eclipse.ini, коли він встановлюється вперше. Просто змініть правильний шлях JDK в eclipse.ini. Це повинно вирішити цю помилку.
Раджараман

Відповіді:


221

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

Три речі, які слід пам’ятати:

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

Встановлені JRE


Червень 2012 року, коментарі jmbertucci :

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

Я перейшов на сторінку встановлення Java вручну (яка була не так прямо доступна, як вам хотілося) і встановила 64-бітну версію. Див. " Завантаження Java для всіх операційних систем ". Це було все, що мені було потрібно.


Квітень 2016: Стів Мейн додає в коментарях :

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


42
Це питання / відповідь трохи старий, але я стикався з цим питанням, тому я опублікую свої замітки. У мене працює 64-бітний Win7, і в мене встановлено 32-бітний JRE. Я завантажив Eclipse 64bit, який шукає 64-розрядний JRE. Оскільки у мене не було 64-бітового JRE, воно викинуло помилку, що має сенс. Я перейшов на сторінку встановлення Java вручну (яка була не так прямо доступна, як вам хотілося) і встановила 64-бітну версію. java.com/en/download/manual.jsp Це було все, що мені було потрібно.
jmbertucci

2
@Nuktu: Я додав коментар jmbertucci до відповіді
VonC

@jmbertucci: дякую за замітки. Я додав їх у відповідь для більшої наочності.
VonC

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

1
@SteveMayne Цікаво, дякую. Я включив ваш коментар у відповідь для більшої наочності.
VonC

141

Просто скопіюйте цей файл:

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

в папку затемнення

* Примітка перевірена лише для Windows

Заміна javaw.exe в Eclipse Folder


Я шукав просте рішення, як ця відповідь, але це не спрацювало для мене, якщо у когось схожа ситуація, зміна каталогу vm у файлі eclipse.ini може допомогти .
Ноха Карім

3
Не працювало для мене. Помилка: відкриття ключа реєстру "Програмне забезпечення \ Javasoft \ Java середовище виконання Java". Мені довелося скопіювати всю папку jre7 (у моєму випадку) у каталог Eclipse та перейменувати її у jre. Тоді це спрацювало.
CuriousMarc

Якщо хтось не вдається, спробуйте скопіювати папку jre у папку затемнення.
Артур Жихін Лю

@NohaKareem, ваша порада була для мене найближчою. На жаль, моя папка 'jre' містила лише «lib», тому копіювання через папку Java «jdk» (хоч і більша на 350 МБ, але мала внутрішню папку «бін») та перейменування її на «jre» працювало. Дякую.
Mindsect Team

Встановлений 32-ти і 64-бітний Java, але 32-бітний Java на шляху, спроба відкрити 64-бітове затемнення не вдасться, якщо файл 64-бітового javaw поруч із eclipse змушує його працювати.
DiamondDrake

83

Всі інші відповіді на питання про налаштування тількиJAVA_HOME не зовсім вірно. Eclipse саме не консультуєтьсяJAVA_HOME . Погляньте ближче на повідомлення про помилку:

... у вашому поточному ПАТ

Буквально сказано PATH, ніJAVA_HOME .

Клацніть правою кнопкою миші Мій комп'ютер і виберіть " Властивості" (або натисніть Winkey+ Pause), перейдіть на вкладку " Додатково" , натисніть кнопку " Змінні середовища" , у списку системних змінних внизу виберіть Path(ні, ні Classpath ), натисніть " Редагувати та додати";c:\path\to\jdk\bin до кінця значення.

Крім того, і якщо немає, ви також можете додати JAVA_HOMEзмінну середовища та використовувати її в PATH. У цьому ж діалозі натисніть кнопку Створити та додайте JAVA_HOMEзі значенням c:\path\to\jdk. Потім ви можете додати ;%JAVA_HOME%\binдо кінця значення Pathналаштування.


2
Це не спрацювало :) дані назви середовища: Path --- значення: C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
Шляхи з пробілами потрібно укласти в лапки.
BalusC

мій шлях був налаштований ідеально налаштований раніше, компілятор Borland редагував поле шляху і замінював шлях Java на свій власний шлях, тепер його Виправлено, розмірковує !!!
Ахіл Джайн

1
@BalusC Насправді, не потрібно вкладати шляхи в лапки під час налаштування змінних середовища PATH у Windows. Досить лише розмежувати їх крапкою з комою ( ;).
informatik01

це відповідь, яка її вирішує. через пару годин копання для тих, хто має ту саму проблему, вам потрібно: 1) переконайтесь, що все 64-бітне. Потрібно автоматично встановлювати в "програмні файли", НЕ "програмні файли (x86)". 2) Запишіть -VM у папку bin, яку мають інші відповіді. 3) Встановіть шлях так, як сказав цей хлопець. Нічого не станеться, якщо ви не зможете запустити java з командного рядка. 4) радіти
трійчатка

36

Відкрийте Властивості системи Windows на панелі керування та відвідайте розділ змінних середовища:

  • Додайте запис JAVA_HOME, що вказує на каталог, де встановлений JDK (наприклад, C: \ Program Files \ Java \ jre6)
  • Знайдіть запис "Шлях" та додайте наступне до кінця;% JAVA_HOME% \ bin
  • Добре зміни
  • Перезапустіть затемнення, щоб воно було в курсі нового середовища

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


3
Коли я додав ім'я: значення JAVA_HOME: "C: \ Program Files (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin", я все одно отримую ту саму помилку
Wallter

24

Якщо ви завантажите 64-бітну версію Eclipse; він буде шукати 64-бітну версію JRE. Якщо ви завантажите 32-бітну версію Eclipse; він буде шукати 32-бітну версію JRE

Що я зробив, це встановити і 32, і 64-бітну версію JRE. Ви можете отримати це на сайті SUN Oracle. Здається, сайт JAVA автоматично встановлює 32-бітну версію Java. Я думаю, це через веб-браузер.


2
Як заявив ladookie, найімовірніше, що браузер запустив поганий код на веб-сайті Java та отримав неправильну версію JAVA ...
Wallter

1
speedbaron тут абсолютно прав. Якщо ви змінюєте змінну навколишнього середовища PATH, переконайтеся, що ви поставили шлях правильної версії. У моїй 64-бітній системі Windows 7 був встановлений 32-розрядний JRE (не знаю чому), тому я встановив 64-бітну версію і додав до PATH нову директорію. Здається, зараз добре працює.
musicliftsme

1
Це була моя проблема. Зауважте, що Windows встановлює 64-бітний C:\Program Files\Javaта 32-бітний C:\Program Files (x86)\Java.
styfle

10

Виявилося, що все, що мені потрібно було, - це змінити "шлях" на:

"C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ програмні файли (x86) \ Java; C: \ програмні файли (x86) \ Java \ jdk1.6.0_14 \ bin "

це зробили :)


1
До речі, ви повинні використовувати jdk1.6.0_16 або новішу версію. Використовуючи jdk 1.6.0_14, ви не можете правильно використовувати точки прориву
Csaba_H

9

У мене Windows 64 64-розрядні, і у мене була ця сама проблема із затемненням. Щоб змусити його працювати, мені довелося скористатись Internet Explorer (64-розрядна версія), щоб завантажити Java. Це був єдиний спосіб отримати Java для встановлення 64-бітної версії. Коли я використовував Firefox для встановлення Java, він автоматично встановлював 32-бітну версію (настільки ідіотську!). І 64-розрядна версія Eclipse не виявить 32-бітну версію Java.


У мене більше немає проблеми - але це здається гарним рішенням і має сенс - було б цікаво перевірити це за допомогою інших 64-бітових браузерів ...
Wallter

7

Розчин у двох словах:

Клацніть правою кнопкою миші на "Мій комп'ютер", виберіть "Властивості", потім - "Розширені налаштування системи", на вкладці "Додаткові" виберіть вікно "Властивості системи", виберіть "Змінні середовища", у розділі "Системні змінні" з'явиться вікно змінних, знайдіть PATHзмінну та відредагуйте значення. , змінивши його (версію; jre6, jre7 тощо) на те, що ви використовуєте, наприклад, для моєї:C:\Program Files\Java\jre7\bin


7

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

навіть якщо ваші JAVA_HOME і Path налаштовані дійсними, у них може бути ця проблема, тому найпростіший спосіб зробити це відкрити eclipse.ini у папці встановлення затемнення

-вм

C: \ програмні файли \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

замініть C: \ програмні файли \ Java \ jdk1.7.0_71 \ bin \ javaw.exe своїм шлях jdk або jre `


Я голосую за те, щоб ця відповідь була правильною. Не покладайтеся на змінну шляху Windows, тому що вона змінюється майже в кожному оновлення. Наприклад, хромоване (32-бітове на 64-бітній машині) оновлення Java замінює загальносистемний 64-бітний JVM на 32-бітний JVM. Зауважте також, що цей запис повинен бути останнім у eclipse.ini, інакше він не працює. І - як зазначено інакше - змінна JAVA_HOME НЕ оцінюється eclipse.exe. Будь ласка, відредагуйте відповідь відповідно.
Хері

Це найкраща відповідь, оскільки вона безпосередньо вирішує актуальну проблему. Eclipse шукає шлях для певного параметра, і це значення неправильне ... тому виправлення значення виправляє проблему.
BuvinJ

6

У вашому eclipse.iniфайлі потрібно оновити шлях до VM, щоб вказати на те саме місце, де javaw.exeвстановлено на вашій машині.


6

Не хвилюйтеся, я також був зіпсований цією помилкою і фатально, і коли я отримав це, я був так розчарований, що навіть я давав залишити програмування для Android, але я це отримав, Просто перш за все скопіюйте цей код і вставте у вашу змінну системи Під стежкою ...

C: \ програмні файли; C: \ Winnt; C: \ Winnt \ System32; C: \ програмні файли \ Java \ jre6 \ bin \ javaw.exe

Тепер скопіюйте папку "jre" зі свого шляху, як у мене є "jre" під цим контуром

            C:\Program Files\Java

і вставити його у папку затемнення означає, де розміщений файл eclipse.exe. як у мене в цьому місці встановлено моє затемнення

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

Отже, всередину Папки затемнення вставляйте "JRE" СТРІКУ. Якщо у вас є "jre6", то перейменуйте його на "jre" .... і запустіть затемнення, ви отримаєте рішення ...

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

ІНШІ РІШЕННЯ: 2

Якщо проблему не вдалося вирішити за допомогою наведених вище кроків, виконайте ці дії

  1. Скопіюйте папку "jre" зі свого шляху Java, наприклад C: \ Program Files \ Java \ jre6 * тощо, і вставте її у каталог затемнення (Де доступне ваше затемнення)
  2. Перейдіть у файл eclipse.ini, відкрийте його.
  3. Змініть каталог файлу javaw.exe, як

-vmF: \ Програмне забезпечення \ МОВИ SOFTEARE \ Налаштування Android \ затемнення Індіго версія 32 Bit \ jre \ bin / javaw.exe

На цей раз, коли ви почнете затемнення, він шукатиме javaw.exe, тому він шукатиме шлях у eclipse.ini, як зараз у тій самій папці, так він запустить javaw.exe і почне працювати .

Якщо у вас все ще є запит, ви можете задати його ще раз, просто перейдіть на мій профіль і дізнайтеся мій ідентифікатор електронної пошти. тому що я люблю форум переповнення стека, і це зробило мене програмістом. *


5

Відредагував мій файл eclipse.ini, щоб оновити нещодавно оновлений JDK. Раніше у мене був jdk1.7.0_09 і тепер оновлений до jdk1.7.0_80, і затемнення викинуло цю помилку.

Для запуску Eclipse повинні бути доступними середовище виконання Java (JRE) або комплект для розробки Java (JDK). Не знайдено віртуальної машини Java після пошуку в таких місцях: C: / Файли програми / 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

Затемнення працює чудово.


1
Це рішення, яке працювало для мене - дякую Лакі. Eclipse завантажує посилання на JRE у файл ini, тому прийнята відповідь є невірною, припускаючи, що вона дивиться на env PATH.
Стів Мейне


3

якщо після додавання C: \ Program Files \ Java \ jdk1.8.0_92 \ bin у змінну PATH у змінних оточення затемнення дало ту саму помилку

перевірте файл налаштувань конфігурації затемнення, який знайдено в папці eclipse, ви повинні побачити той самий шлях jdk, який ви маєте у файлах C: \ program

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

Я сподіваюся, що це допоможе.


2

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


2
  • 64-розрядна ОС -> Вам потрібно: 64-розрядна Java та 64-бітна Eclipse
  • 32-розрядна ОС -> Вам потрібно: 32-розрядна Java та 32-бітна Eclipse

якщо ви оновите свою версію Java за допомогою типового оновлення на 64-бітному комп'ютері (і у вас 32-розрядний браузер ), java встановить 32-бітну версію. Ви повинні знайти 64-бітну версію Java та встановити її.


1

На минулому тижні у мене був колега з цією точною проблемою. Він виправив це, встановивши версію Eclipse x64 та x64 JDK x64.

Редагувати: він повторно використовував свою стару робочу область після встановлення необхідних плагінів, так що це не повинно бути великою проблемою


1

Існує простіший спосіб зробити це. Просто запустіть cmd x64. Введіть cmd x64 у рядок пошуку в меню запуску, і ви знайдете його :) Або, як варіант, слід встановити шлях до програмних файлів (x86) ... Наприклад, C: \ Program Files (x86) \ Java \ jre6


1

Просто додайте JRE PATH FOR Ex: C: \ Program Files \ Java \ jre5 \ bin в змінну середовища Put ";" між кожним шляхом. Потім натисніть на eclipse.exe Це спрацює .....


1

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

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

-вм
[шлях до вашого java.exe] (який зазвичай знаходиться під "C: \ програмні файли \ Java \ jre7 \ bin")

PS Щоб відредагувати eclipse.ini, можливо, вам потрібно буде перемістити його, відредагувати та вставити назад

Джерело: - wiki


1

Перш за все дякую YouYou за його рішення! Я спробував відповідь від 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з цієї версії.

... І Eclipse почав працювати !!! Яай!


1

Ну і ця відповідь тим, хто спробував усіх інших, все ще не пощастило. Нехай це буде Android студія, або Eclipseя зазвичай це роблю, коли все інше не вдається.

  1. Знайдіть папку sdk для Android та відкрийте файл android.bat у текстовому редакторі
  2. ви знайдете такі команди, як на початку файлу,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Змініть їх на

    set java_exe=< шлях до файлу java.exe (його можна знайти в папці jdk / директорії бін) >

  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=< шлях до відповідного файлу swt.jar, для x86 - це на sdk \ tools \ lib \ x86, а для x64 - на sdk \ tools \ lib \ x86_64 >
  2. Збережіть і закрийте файл, і тепер ви готові перейти ..

1

Спробуйте встановити свій JAVA_HOME у потрібну папку. Google для встановлення змінних середовища в Windows.


Я дотримувався цих інструкцій: wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.html, але безрезультатно
Wallter

Я ненавиджу це говорити ... але ти перезапустив?
Topher Fangio

Перезапуск не потрібен для встановлення Java.
Thorbjørn Ravn Andersen

1
і JAVA_HOME не потрібен. Саме PATH використовується для пошуку javaw.exe. (JAVA_HOME використовується в деяких інших програмах, таких як мураха, тому все-таки неправильно встановити його)
користувач85421

1

Я також зіткнувся з цією проблемою. Моя справа така:

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

У тексті:

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

Перевірте вікно> налаштування> Java> встановлені JRE. Переконайтесь, що там щось є; якщо немає, додайте його.

Ви нещодавно оновили свій JDK?


Так, я спробував додати додатки для андроїд. Але ні (як сказав Тофер Фангіо,) я зараз не можу запустити Eclipse.
Уолтер

0

JDK не встановлює JVM у шляху за замовчуванням.

Якщо вам не потрібні зовнішні інструменти для запуску, як мураха, не-JDK достатньо для запуску Eclipse. Найпростіший спосіб встановити такий JVM - це перейти на http://java.com і дозволити йому встановити все, що він хоче встановити.

Потім знову двічі клацніть двійковий файл Eclipse.


Я знову встановив його (він навіть запитав, чи хочу я його перевстановити) без користі. (Я робив як плагін Google Chrome 14 - чи щось подібне & & Firefox)
Wallter

Ви зайшли на java.com? Не javasoft.com?
Thorbjørn Ravn Andersen

0

встановити змінну JAVA_HOME та оголошення JAVA_HOME / bin на змінну шляху evnrionment.


ось так: "C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin"? - все одно не вийшло :)
Уолтер

Посилання JAVA_HOME у змінну шляху вимагає його вбудовування:% JAVA_HOME% \ bin
Heri

Для мене (Windows 10 64 біт + Eclipse 4.10) хитрість полягала в тому, щоб додати, крім JAVA_HOMEзмінної середовища, JRE_HOMEзмінну, яка була встановлена ​​на місце javaw.exeрозташування (що, ймовірно, завжди є бінною папкою встановленого JDK ).
Гай Аврахам

0

У мене була така ж проблема (Windows 7 x64, 64-бітний JDK, 32-бітний Eclipse), і я знайшов 2 рішення:

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

Дивіться, але ви використовували Windows 7 x86 там, де я використовував x64 --- як інші заявляли, що ця проблема, можливо, була глюком з боку SUN в їх програмуванні того, як їх веб-сторінка «виявляє версію» (тобто x64 або x86) ви слід використовувати
Уолтер

Виправлення, я використовував Windows 7 x64
Тім

0

У мене була така ж проблема. Найпростішим способом для мене це було встановити як JRE, так і затемнення як x86 або x64. Коли їх тип біта не збігався, затемнення не змогло його знайти. Отже, якщо для вас не буде великої справи видалити та перевстановити, щоб зрівняти їх, я б це зробив.

Я закінчив установку: Java Runtime Environment 1.7.0.3 (64-розрядні) та Eclipse Indigo (3.7) (64-розрядні)

Тоді це просто працює.


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.