Program "make" not found in PATH - eclipse

I'm having the Program "make" not found in PATH error in eclipse. I checked the path variable which is:
C:\cygwin\bin;
%JAVA_HOME%\bin;
%ANT_HOME%\bin;
%ANDROID_SDK%\tools;
%ANDROID_SDK%\platform-tools;
%ANDROID_NDK%;
%CommonProgramFiles%\Microsoft Shared\Windows Live;
C:\Program Files\NVIDIA Corporation\PhysX\Common;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;
C:\Program Files\Git\cmd
The PATH starts with the folder which contains make (I checked and make.exe is in there), but eclipse still goes Program "make" not found in PATH.
I have tried changing the path and restarting several times but nothing seems to change.

You may try altering toolchain in case if for some reason you can't use gcc. Open Properties for your project (by right clicking on your project name in the Project Explorer), then C/C++ Build > Tool Chain Editor. You can change the current builder there from GNU Make Builder to CDT Internal Builder or whatever compatible you have.

Are you trying to run "Hello world" for the first time? Please make sure you choose proper toolchain. For Windows you have to choose MinGW GCC.
To make MinGW GCC compiler as default or change you original project with error "Program “make” not found in PATH" or "launch failed binary not found eclipse c++" when you trying to run program simply go to
Windows >> Preferences >> C\C++ Build >> Tool Chain Editor >> Change Current toolchain to MinGW GCC

In MinGW, I had to install the following things:
Basic Setup -> mingw32-base
Basic Setup -> mingw32-gcc-g++
Basic Setup -> msys-base
And in Eclipse, go to
Windows -> Preferences -> C/C++ -> Build -> Environment
And set the following environment variables (with "Append variables to native environment" option set):
MINGW_HOME C:\MinGW
PATH C:\MinGW\bin;C:\MinGW\msys\1.0\bin
Click "Apply" and then "OK".
This worked for me, as far as I can tell.

If you are using MinGw, rename the mingw32-make.exe to make.exe in the folder " C:\MinGW\bin " or wherever minGw is installed in your system.

Just to clarify the details that Adel's linked eclipse forum covers, here's how I solved this (on OS X):
Note: for me, even though my personal environment (i.e. if in bash, echo $PATH) had /Developer/usr/bin in it, I still had to add it to Eclipse's Environment variables:
Go to Eclipse Preferences -> C/C++ -> Build -> Environment -> Add.. -> "${PATH}:/Developer/usr/bin"
In the case of some other OS, just use the right path where make exists.

If you are using MinGW toolchain for CDT, make.exe is found at C:\MinGW\msys\1.0\bin
(or search the make.exe in MinGW folder.)
Add this path in eclipse
window->preferences->environment

Make sure you have installed 'make' tool through Cygwin's installer.

If you are using GNU MCU Eclipse on Windows, make sure Windows Build Tools are installed, then check the installation path and fill the "Global Build Tools Path" inside Eclipse Window/Preferences... :

Probably there are some files inside C:\cygwin\bin called xxxxxmake.exe, try renaming it to make.exe

I had the same problem.
Initially I had setup Eclipse CDT with Cygwing & was working smoothly. One day there happened a problem due to which I had to reset windows. After that when I opened Eclipse I started facing the issue described above. This is how I solved it.
First I searched that in the error the PATH variable value is same as the PATH variable of windows ( just by manual comparison of both two values ). I found that to be same. Now I realized that it is a PATH problem.
Then started looking for Cygwin whether it is there or not? It was there. I located & found that it exists in
C:\cygwin64\bin>
C:\cygwin64\bin>dir ma*
Volume in drive C is Windows8_OS
Volume Serial Number is 042E-11B5
Directory of C:\cygwin64\bin
16-05-2015 18:34 10,259 mag.exe
13-08-2013 04:57 384 mailmail
11-04-2015 02:56 4,252 make-emacs-shortcut
15-02-2015 23:25 194,579 make.exe
04-05-2015 21:36 40,979 makeconv.exe
29-07-2013 11:57 29,203 makedepend.exe
16-05-2015 18:34 79,891 makeindex.exe
16-05-2015 18:34 34,323 makejvf.exe
07-05-2015 03:04 310 mako-render
18-04-2015 02:07 92,179 man.exe
18-04-2015 02:07 113,683 mandb.exe
13-08-2013 04:57 286 manhole
18-04-2015 02:07 29,203 manpath.exe
24-10-2014 13:31 274,461 mate-terminal.exe
24-10-2014 13:31 1,366 mate-terminal.wrapper
15 File(s) 905,358 bytes
0 Dir(s) 373,012,271,104 bytes free
C:\cygwin64\bin>
Then I simply went ahead & updated the PATH variable to include this path & restarted eclipse.
The code compiles & debugging (GDB ) is working nicely.
Hope this helps.

Go to Project> Properties> C/C++ Build> Environment. You will see three fields, choose PATH. See if the folder containing make.exe is appended to the path or not. Sometimes the change to the System PATH variable (made from My Computer> Properties> Advanced System Settings...) is NOT reflected in Eclipse. This solved the problem for me, hope it helps you too!

Additional hint: If you have multiple projects with different toolchains open, check the build console header for the failing project's path.
I've just spent half an hour trying to fix a build that showed this error because another project with hopelessly outdated toolchain settings was open in the same workbench. Closing the other project re-enabled the build.

I also faced this problem but solved it by installing QT and extract the omnet5.6 folder in C:

Related

I cannot find SpringToolSuite4.ini file in the new version of SpringToolSuite4(4.1.2). It seems be changed to manage .ini.file. Where can I find it?

I need to change some configuration information to use SpringToolSuite4. But when I downloaded SpringToolSuite4 4.1.2 and unziped, there isn't SpringToolSuite4.ini file. So I created one, but SpringToolSuite4 didn't reference to SpringToolSuite4.ini file when starting.
I solved the problem with these steps:
Open the commad terminal;
go to the location where you put the jar file;
Run "java -jar [****.jar]";
PS: Make sure you have java runtime installed in you machine and you have the correct environment settings.
Hope this could help you.
I guess this is an admin rights problem:
I have downloaded the self extracting .jar file:
spring-tool-suite-4-4.8.1.RELEASE-e4.17.0-win32.win32.x86_64.self-extracting.jar
I saved it in c:\Program Files (needs admin rights).
Double-clicked it (not as admin) -> Same error (cannot find the SpringToolSuite4.ini file).
I have started TotalCommander (you may use a differnt explorer) with admin rights -> Problem fixed.
Open jar with winrar. Open the "contents.zip". Move to "sts-4.8.0.RELEASE" folder in documents. After, we run the program.
jar:spring-tool-suite-4-4.8.0.RELEASE-e4.17.0-win32.win32.x86_64.self-extracting
You can solve the problem like this.
When I downloaded it for the second time. I also got this error(SpringToolSuite4.ini). That's how I passed. instead of downloading it again. Downloading it again didn't work.
right click on the sts icon inside the extracted sts-bundle package and select show content.

install4j: Changing pref_jre.cfg on MacOS doesn't work

We use install4j for our software and we have our own autoupdate procedure (which perform update of JRE too). We try to change the location of JRE using pref_jre.cfg. On Windows it is working as expected - running our application with /create-i4j-log tells that JRE folder is the same as in pref_jre.cfg. But on MacOS it doesn't work. E.g. if I rename jre.bundle in .install4j folder to v2.jre.bundle, than change pref_jre.cfg appropriately, than run with INSTALL4J_LOG=yes - the log says that JRE is /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home that is not that I expect.
Can installj4 on MacOS use path to JRE defined in pref_jre.cfg?
Indeed, this is currently not implemented on macOS. A workaround is to create a symbolic link from .install4j/jre.bundle to the JRE that should be used.
In the case of a single bundle, the link should be created in Contents/Resources/jre.bundle.

How to eliminate RubyMine false "No such file to load" errors

I've recently installed RubyMine on a second machine and cloned a GitHub repository there.
My application runs exactly the same as on the first machine, but the RM code inspection result is radically different: I get dozens of "No such file to load" errors.
This even though the application runs fine both from the command line and from RM.
In dialog Run/Debug Configurations, I have specified load paths (-I. -I..) in the Ruby arguments.
Does the code inspection not honor the configuration? Or perhaps it's using a different configuration?
A bit late, but you may need to mark the directories that are load path roots in your app within the Rubymine tree - right click and do "Mark Directory As/Load Path Root".
For me the other solutions did not work. However, the problem was that RubyMine detected the wrong ruby version - while rvm for the project was ruby 2.4.1, in RubyMine it defaulted to the last version it had (2.4.2). So going to RubyMine > Preferences > Ruby SDK & Gems and changing the version for the project to the correct one solved it.
If you use the "Mark Directory As/Load Path Root" action, this will apply for IDE autocompletion only. It will not be propagated onto the interpreter (as it would be in PyCharm with Python).
You have to either keep using the -I switch, or configure $LOAD_PATH in your code, or (preferably) set up a Gem project with bundler support. You can then configure the path in a gemspec file. See https://www.jetbrains.com/help/ruby/creating-gem-project.html.
Sources:
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206741945-Load-Path-not-working-at-all-
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206727915-Building-RubyGems-lib-in-load-path-
You can try changing Project Path Mappings and set relative Local Path and Remote Path to get it to work.

how to configure less in eclipse?

I downloaded the plugin from http://www.normalesup.org/~simonet/soft/ow/eclipse-less.en.html.
and installed in on eclipse however when I try to compile the less to css I get this error
Cannot be launched because of an I/O exception
Cannot run program "lessc": CreateProcess error=2, The system cannot find the file specified
can anyone whose successfully installed this guide me in the right direction ? Also xtext is installed already.
There is a similar issue for the lessc GitHub repo: issues/213
I added a new launch configuration as follows:
LESS command: lessc (existing)
Compress the generated CSS file (existing)
Use this launch configuration as default
Your have to change the "LESS Command".
Please filling your "lessc" physical path, just like "C:\Users\[Yourname]\AppData\Roaming\npm\lessc.cmd"
(Windows 7, node.js standard installer)
That means you must indicate the full path of lessc.cmd

Eclipse - no Java (JRE) / (JDK) ... no virtual machine

I am trying to get Eclipse v3.5 (Galileo) to re-run on my computer - I have run it before with no problems, but now I keep getting this error:
A Java Runtime Environment (JRE) or Java Development kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations:
C:\eclipse\jre\javaw.exe
javaw.exe in your current PATH
I've just done a fresh install of both the JDK and the SDK.
I have Windows 7 (x64).
What's up with this? How do I fix it?
I can't run any of the ipconfig / tracert / or ping.
Eclipse will by default try to launch with the default "java.exe" (the first one referenced by your PATH)
Three things to remember:
"Installing" a JRE or a JDK can be as simple as unzipping or copying it from another computer: there is no special installation steps, and you can have as many different JVM versions (1.4, 5.0, 6.0...) as you want, "installed" (copied) almost anywhere on your disk.
I would recommend to always run Eclipse with the lastest JRE possible (to benefit from the latest hotspot evolutions).
You can:
Reference that exact JRE path in your eclipse.ini.
Copy any JRE of your in your <eclipse>/jre directory.
In both cases, no PATH to update.
The JVM you will reference within your Eclipse session is not always the one used for launching Eclipse because:
You only need a JRE to launch Eclipse, but once Eclipse launched, you should register a JDK for your projects (especially for Java sources and debugging purposes, also in theory for compilation but Eclipse has its own Java compiler)
Note: You could register just a JRE within Eclipse because it is enough to run your program, but again a JDK will allow for more operations.
Even though the default registered Java in Eclipse is the one used to launch the session, you can want to register an older SDK (including a non-Sun one) in order to run/debug your programs with a JRE similar to the one which will actually be used in production.
June 2012, jmbertucci comments:
I'm running Windows 7 64-bit and I had the 32-bit JRE installed.
I downloaded Eclipse 64-bit which looks for a 64-bit JRE.
Because I didn't have the 64-bit JRE it threw the error, which makes sense.
I went to the Java manual install page (which was not as directly accessible as you'd like) and installed the 64-bit version. See "Java Downloads for All Operating Systems".
That was all I needed.
April 2016: Steve Mayne adds in the comments:
I had to edit the eclipse.ini file to reference the correct Java path -
Eclipse doesn't use the environment PATH at all when there is a value in eclipse.ini.
Just copy this file :
c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe
to Eclipse Folder
*note only tested for Windows
All the other answers about setting only the JAVA_HOME are not entirely right. Eclipse does namely not consult the JAVA_HOME. Look closer at the error message:
...in your current PATH
It literally said PATH, not JAVA_HOME.
Rightclick My Computer and choose Properties (or press Winkey+Pause), go to the tab Advanced, click the button Environment Variables, in the System Variables list at the bottom select Path (no, not Classpath), click Edit and add ;c:\path\to\jdk\bin to the end of the value.
Alternatively and if not present, you can also add JAVA_HOME environment variable and make use of it in the PATH. In the same dialogue click New and add JAVA_HOME with the value of c:\path\to\jdk. Then you can add ;%JAVA_HOME%\bin to end of the value of the Path setting.
Open up Windows' System Properties from the control panel and hunt down the environment variables section:
Add a JAVA_HOME entry pointing to the directory where the JDK is installed (e.g. C:\Program Files\Java\jre6)
Find the Path entry and add the following onto the end ;%JAVA_HOME%\bin
OK the changes
Restart eclipse so that it is aware of the new environment
Most Java tools will now be able to find your Java installation either by using the JAVA_HOME environment variable or by looking for java.exe / javaw.exe in the Path environment variable.
If you download the 64 bit version of Eclipse; it will look for the 64 bit version of JRE.
If you download the 32 bit version of Eclipse; it will look for the 32 bit version of JRE
What I did was to install the both the 32 and 64 bit version of JRE. You can get that from the SUN Oracle site. The JAVA site seems to automatically install the 32 bit version of Java. I guess that's because of the web browser.
It turned out that all I needed to do was change the 'path' to:
"C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;
C:\Program Files (x86)\Java;
C:\Program Files
(x86)\Java\jdk1.6.0_14\bin"
that did it :)
I have windows 7 64-bit, and I had this same problem with eclipse. To get it to work, I had to use internet explorer (64-bit version) to download java. This was the only way to get java to install a 64-bit version. When I used firefox to install java, it automatically installed a 32-bit version (so idiotic!). And The Eclipse 64-bit version wouldn't detect the java 32-bit version.
Solution in a nutshell:
Right-click on My Computer, click properties, then advanced system settings, a System properties window will popup, under advanced tab, choose environment variables, Environment variables window will popup, under the System variables section , look for PATH variable, and edit the value, changing it (the version; jre6,jre7, etc) to whatever jre you're using, e.g for mine: C:\Program Files\Java\jre7\bin
Do not rely on the windows path variable because it gets changed in nearly every update. E.g. a chrome (32bit on a 64 bit machine) java update replaces the systemwide 64 bit JVM by a 32 bit JVM. Note also that this entry has to be the last one in the eclipse.ini, otherwise it does not work,And - as otherwise stated - the JAVA_HOME variable is NOT evaluated by eclipse.exe.
even if your has JAVA_HOME and Path configured valid,their may has this problem,so
the most simple way to do is open your eclipse.ini in your eclipse installtion folder
-vm
C:\Program Files\Java\jdk1.7.0_71\bin\javaw.exe
replace C:\Program Files\Java\jdk1.7.0_71\bin\javaw.exe with your jdk or jre `s path
In your eclipse.ini file, you need to update the path to the VM to point to the same location where javaw.exe is installed on your machine.
Don't worry i was also ruined by this error and fatal and when i got it i was so frustrate even i was giving to leave an android programming, but i got it, Simply first of all copy this code and paste in your system variable Under path ...
C:\Program Files;C:\Winnt;C:\Winnt\System32;C:\Program
Files\Java\jre6\bin\javaw.exe
Now copy the "jre" folder from your path like i have have "jre" under this path
C:\Program Files\Java
and paste it in your eclipse folder means where your eclipse.exe file is placed. like i have my eclipse set up in this location
F:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse
So inside the eclipse Folder paste the "jre" FOLDER . If you have "jre6" then rename it as "jre"....and run your eclipse you will got the solution...
//<<<<<<<<<<<<<<----------------------------->>>>>>>>>>>>>>>>>>>
OTHER SOLUTION: 2
If the problem could't solve with the above steps, then follow these steps
Copy the folder "jre" from your Java path like C:\Program Files\Java\jre6*
etc, and paste it in your eclipse directory(Where is your eclipse
available)
Go to eclipse.ini file , open it up.
Change the directory of your javaw.exe file like
-vmF:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse Indigo version 32 Bit\jre\bin/javaw.exe
Now this time when you will start eclipse it will search for javaw.exe, so it will search the path in the eclipse.ini, as it is now in the same folder so, it will start the javaw.exe and it will start working.
If You still have any query you can ask it again, just go on my profile and find out my email id. because i love stack overflow forum, and it made me a programmer.*
Edited my eclipse.ini file to update the newly updated JDK. Previously I had jdk1.7.0_09 and updated now to jdk1.7.0_80 and eclipse threw this error.
A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No
Java virtual machine was found after searching the following
locations: C:/Program Files/Java/jdk1.7.0_09/bin/javaw
After updating eclipse.ini from,
-vm
C:/Program Files/Java/jdk1.7.0_09/bin/javaw
to
-vm
C:/Program Files/Java/jdk1.7.0_80/bin/javaw
Eclipse works fine.
make a batch file in the eclipse folder and write in it :
eclipse -vm C:\Sun\SDK\jdk\jre\bin\javaw.exe
see
http://wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F
if after adding the C:\Program Files\Java\jdk1.8.0_92\bin in PATH variable in environment variables the eclipse gave the same error
check eclipse configuration settings file that found in eclipse folder, you must see the same jdk path you have in C:\program Files
I hope it help.
When I had such problem, in my case I had x64 JDK + JRE installed with x86 Eclipse. So installing of x86 JDK + JRE solved my problem :) Also I created jre folder in eclipse folder and copied bin folder from my local path C:\Program Files (x86)\Java\jre7 to ..\eclipse\jre\.
64-bit OS--> You need: 64-bit Java and 64-bit Eclipse
32-bit OS--> You need: 32-bit Java and 32-bit Eclipse
if you update your java version with default update in your 64 bit computer (and you have 32 bit browser), java will install 32 bit version. You should find 64 bit java version and install it.
I had a co-worker with this exact problem last week. He fixed it by installing the x64 version of Eclipse and the x64 JDK.
Edit: he reused his old workspace after installing the necessary plugins, so that should not be much of an issue
There is an easier way to do that. Just run cmd x64. Type cmd x64 to search bar in start menu ant you will find it :) Or alternatively, you should set path to program files (x86) ... For example C:\Program Files (x86)\Java\jre6
Just Add the JRE PATH FOR Ex: C:\Program Files\Java\jre5\bin in the environmental variable
Put ";" in between every path. Then click the eclipse.exe It will work.....
The reason you get this error is because eclipse needs a JRE to launch, which it can't find. The first place it searches is the current directory, then the eclipse.ini file and then finally the system path. So if the it can't find the correct jvm(bit versions are different) through any of these three places, it cribs
The recommended way is to edit the eclipse.ini file and tell eclipse where exactly to look for the vm/jre, by including this line in the file:
-vm
[path to your java.exe] (which is generally under "C:\Program Files\Java\jre7\bin")
P.S. To edit the eclipse.ini, you may need to move the it, edit and then paste it back
Source:- wiki
First of all thanks to YouYou for his solution! I tried answer by YouYou (https://stackoverflow.com/a/14464653/801919). Initially, it did not work for me. Following are the steps that I needed to take to make it work:
Initially, I did not have Java installed on my new machine. So, I had to install that (downloaded from: http://java.com/en/download/manual.jsp).
I am running 64-bit OS. But, while downloading, I got the message which could help me in choosing which version of Java to download: Choose the 32-bit download to use with a 32-bit browser. Hence, I downloaded 32-bit version.
Then, I followed the procedure mentioned in https://stackoverflow.com/a/14464653/801919, hoping to get the solution.
I got some other error: Java was started but returned exit code=13
Then, I installed 64-bit version of Java.
Copied javaw.exe from that version.
...And Eclipse started working!!! Yaay!
Well this answer is to those who tried all of them others an still no luck, May this be Android studio or Eclipse i usually do this when everything else fails.
Find your Android sdk folder and open the android.bat file with a text editor
you will find some commands like these in the start of the file,
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF
Change them to
set java_exe= <the path to your java.exe file(can be found inside your jdk folder/bin directory)>
find the lines
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
Replace it with set swt_path=<the path to your respective swt.jar file, for x86 it is at sdk\tools\lib\x86 and for x64 at sdk\tools\lib\x86_64>
Save and close the file and now you are good to go..
Try setting your JAVA_HOME to the correct folder. Google for setting environment variables in Windows.
I have run into this problem too. My case is as following:
In text:
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
I found their types of the registry value Path are different, so I checked whether the path is valid or not by the following command:
C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".
As a result, I reset the local (current user) environment by the following commands (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
But, in the current process, it cannot propagate those changes to other running processes.
However, if you directly modify user environment variables in the Registry Editor,
those modifications to the environment variables do
not result in immediate change. For example, if you start another
Command Prompt after making the changes, the environment variables
will reflect the previous (not the current) values. The changes do not
take effect until you log off and then log back on.
To effect these changes without having to log off, broadcast a
WM_SETTINGCHANGE message to all windows in the system, so that any
interested applications (such as Windows Explorer, Program Manager,
Task Manager, Control Panel, and so forth) can perform an update.
See details at How to propagate environment variables to the system
Here, I give a powershell script to do it:
# 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
Check Window > Preferences > Java > Installed JREs. Make sure there's something there; if there isn't, add one.
Did you recently update your JDK?
The JDK does not install a JVM in the default path.
Unless you need external tools to run like ant, the non-JDK is enough for Eclipse to run. The easiest way to install such a JVM is to go to http://java.com and let it install whatever it want to install.
Then double-click the Eclipse binary again.
set JAVA_HOME variable and ad JAVA_HOME/bin to evnrionment path variable.
I had the same issue (Windows 7 x64, 64bit JDK, 32bit Eclipse), and I found 2 solutions:
Install the 64 bit version of Eclipse (found by clicking the "Development Builds" tab on the downloads page.)
Install the 32bit version of the JDK.
I had the same problem. The easy way, for me to fix it was to install both the JRE and the eclipse as x86 or x64. When their bit type did not match, eclipse could not find it. So, if it is not a big deal for you to uninstall and reinstall in order to make them match, I would do that.
I ended up installing:
Java Runtime Environment 1.7.0.3 (64-bit) and
Eclipse Indigo (3.7) (64-bit)
Then it just works.
When I copied only javaw, the second error occured, there is not a java.dll file, when I copied it too, eclipse did not start, what I did was that I copied whole jdk folder to eclipse folder and renamed id to jre. Problem solved.