I'm trying to use the JAVA_HOME windows environment variable as the jdkhome directory in a netbeans platform application. The variable is definitely set (it was originally a user variable, but I added an environment variable as well because I thought that might be the issue). My config file currently contains the line
jdkhome="${JAVA_HOME}"
I tried
jdkhome=${JAVA_HOME}
as well. Neither of these work - it says there is no valid java install. It does work if I manually write out the directory that JAVA_HOME points to.
I've tried asking on the official netbeans forum, but there hasn't been any response.
Any advice?
Try %JAVA_HOME% and see if that works.
Related
First of all, this is the vaguest download description I have ever received, here.
I don't know how to set my JAVA_HOME environment variable. When using echo $JAVA_HOME it gives me nothing at all, like the command line just returns an empty line. I am using OS X Catalina at the moment, I have JDK 13 installed properly.
I have check my path for where java is installed: /Library/Java/JavaVirtualMachines/jdk13.0.2.jdk/Contents/Home
I have also looked up how to set the environment variable and most tutorials only provide a way to set the path temporarily or their method of adding the PATH=/.../13.0.2.jdk to .profile does not work.
I have tried setting my path via nano .profile and adding various snippets along the lines of PATH=/.../maven-3.6.3/bin. It does not matter what I do it refuses to work with me.
I have tried other OS X tutorials on google but they are not working for me.
Please rescue me.
I know there are plenty of questions on JAVA_HOME and I've certainly worked through it before. I've been setting up and running java code for years.
It's my understanding that libgdx needs a path to a jdk bin, rather than a jre bin. When I tried to create a little test file, I received the following error:
ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jre7\bin
The invalid directory points to a jre bin, so I downloaded a jdk and added its path to my environment variables, separated by a semicolon.
C:\Program Files\Java\jdk1.7.0_40\bin;C:\Program Files\Java\jre7\bin
but when I ran libgdx again, I got the same error. After restarting my computer to no avail, I tried checking my command prompt manually for all my environment variables. While my Computer > Properties > Advanced System Settings > Environment Variables path was still set to include both directories, the cmd prompt told a different story.
JAVA_HOME=C:\Program Files\Java\jre7\bin
JRE_HOME=C:\Program Files\Java\jre7\bin
So I tried manually setting these values to change them to what they should be. First (having not seen JRE_HOME as a separate variable) I added a semicolon and the jdk path to JAVA_HOME to make it match what was in my GUI environment variables path. When that failed, I separated them like so
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_40\bin
JRE_HOME=C:\Program Files\Java\jre7\bin
Which also has not helped my problem. The error message has not changed. I'm not quite sure what else to do at this point and no other online source seems to answer this particular problem. Hopefully the fine folks at stack are up to the challenge!
Thank you!
I had the same problem too. You need to remove \bin. Also, if you change the JAVA_HOME environment variable, you'll need to restart the Libgdx Project Generator, otherwise it will not use the latest variable value.
You'll only have to include \bin inside the PATH variable.
Make sure your JAVA_HOME environment variable does not contain a semi-colon at the end of the path.
libGDX also specifies a JAVA_EXE variable. To do this they append the JAVA_HOME variable to include '/bin/java.exe'. This can be seen in the code below:
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
The full code can be reviewed on GitHub here.
Keeping the above information in mind, change your JAVA_HOME variable to point to the JDK version of Java you have installed:
C:\Program Files\Java\jdk1.7.0_40
It is not necessary to include the bin folder in your JAVA_HOME variable as libGDX does this for you.
I have been using Eclipse to develop java program on a windows 7 machine. It works. I also typed "java" from the command prompt, it also shows the help message. In other words, I think Java was correctly installed on this machine. However, when I open the "environmental variable" setting on this machine, I cannot find either "JAVA_HOME" setting and "JAVA PATH" setting. What is the problem of this?
Java also copies java.exe and javaw.exe under C:\Windows\System32, there's where your java is running from.
You can confirm that by using where commmand:
On my win7 machine:
>where java.exe
C:\Windows\System32\java.exe
Some environment variables are defined at machine level and some are defined (and overwritten) at user account level. Just do following in windows cmd prompt:
c:\echo %PATH% or just type c:\path
and verify the output.
You can also verify java home path by writing a simple Test class like following:
public class Test {
public static void main(String[]s){
System.out.println(System.getProperty("java.home"));
}
}
There are multitudes of links to be fond on Google regarding how to solve this in Windows. These environment variables typically do not get setup by default when installing java.
Here are some 10 second finds with with answers:
How to set java_home on Windows 7?
Setting the JAVA_HOME Variable in Windows
Installing Java on Windows 7 and setting-up the JAVA_HOME
Check you PATH variable in Environment Variables. It must be set to jreInstallation/bin. Windows does not pick up java command from JAVA PATH, it picks java command from PATH variable.
Also note that once you install JDK, path is not set by installation to jdkInstallation/bin, you need to set it up explicitly.So unless you set the path to jdkInstallation/bin, javac wont be recognized.
Check your path variable in windows environmental variables. At least Java path should be there .
It may looks like this.
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Java\jdk1.7.0\bin
You should set path and classpath variables.
Here's the link you can follow for step by step instructions.
[http://abodeqa.wordpress.com/2012/08/11/how-to-set-path/][1]
With Java, Groovy, Git, Heroku, Maven, and many other projects, what I always do is this:
1. Unzip the software package into a directory, for example:
C:\AeroFS\Java\jdk1.7.0_25
C:\AeroFS\Groovy\groovy-2.0.5
2. Create a HOME variable, such as JAVA_HOME or GROOVY_HOME that points to the
above locations.
3. Put these in your default system path by editing your PATH variable and
adding %JAVA_HOME%\bin and %GROOVY_HOME%\bin to the end of your PATH. In
the case of JAVA_HOME only, you might want to put it at the beginning of
the PATH to override the java.exe that rests in the WINDOWS directory
location.
I'm on Windows 7 and I'm trying to set my JAVA_HOME path to use PhoneGap on android, when i create a project using the command line "cmd" it tells me that it can't find javac.exe? although i'm sure that I've set the variable right
here's my stuff:
Variable name: JAVA_HOME
Variable value: C:\Progra~1\Java\jdk1.7.0_17\bin
(I've also tried to use: C:\Progra~1\Java\jdk1.7.0_17\bin\javac.exe)
My javac.exe location on my laptop C:\Program Files\Java\jdk1.7.0_17\bin\javac.exe
and it still tells me that it can't locate the javac.exe
What I type to create the project and i meet this problem is this:
C:\Users\user>cd C:\Users\user\Desktop\phonegap-2.8.1\lib\android\bin
C:\Users\user\Desktop\phonegap-2.8.1\lib\android\bin>create.bat
Cannot locate javac.exe using the PATH environment variable.
Retry after adding directory containing javac.exe to the PATH variable.
Remember to open a new command window after updating the PATH variable.
Visit http://java.oracle.com if you need to install Java (JDK).
Also, i've tries restarting the windows and closing the command prompt and redownloading the JDK.
Thank You.
cmd is using the values from the PATH variable to locate javac :
set "PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_17\bin"
For other softwares (Tomcat, Maven, etc.) JAVA_HOME must indicate the root of your JDK :
set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_17\"
No need to restart Windows. When using set the changes are taken immediately.
If you choose to modify those variables in the Control Panel, you have to close and relaunch cmd for the changes to take effect.
You have to add java
C:\Program Files\Java\jdk1.7.0_17\bin
Note that your path may be different.
to your environment variables and restart your console.
You can find how to set your variables here:
http://www.itechtalk.com/thread3595.html
Set the JAVA_HOME Variable
Right-click the My Computer icon on your desktop and select Properties.
Click the Advanced system settings. Click the
Environment Variables button. Under System Variables, click New.
Enter the variable name as JAVA_HOME.
Enter the variable value as the installation path for the Java Development Kit(C:\Program Files\Java\jdk1.7.0_17).
Click OK.
Click Apply Changes.
You might need to restart windows.
Set the JAVA_HOME environmental variable to
C:\Program Files\Java\jdk1.7.0_17
Press
Win + Break > Advanced System Settings > Environment Variables > System Variables
Modify/set JAVA_HOME to the above. (No need to restart)
I already had this error when I tried to create a new phonegap project for android but unfortunately I don't remember how exactly I have fixed this.
I don't know if you have followed the phonegap documentation so here is the link : new project, especially the part 3B (be careful about ; in your PATH).
If you don't know what to do now, maybe you should do it again step by step.
May be a little old, but since this is the first goolge result, I might as well add a little something.
You need to create the JAVA_HOME variable AND edit the PATH variable, adding ;%JAVA_HOME%\bin (with a ;) so cmd and some other apps can actually use javac and the rest of the tools
I am trying to upload my GAE app using the console in windows. I am getting the error:
cannot find javac executable based on java.home tried, "C:\Program Files\Java\jre6\bin\javac.exe" and "C:\Program Files\Java\bi
n\javac.exe"
Unable to upload app: cannot find javac executable based on java.home, tried "C:
\Program Files\Java\jre6\bin\javac.exe" and "C:\Program Files\Java\bin\javac.exe
javac.exe is located in C:\Program Files\Java\jdk1.6.0_18\bin how do I tell java thats where it is
You must set the JAVA_HOME environment variable to refer to the top-level folder where java is installed. Right-click "My Computer", Properties, Advanced, Environment Variables. If there's an existing JAVA_HOME variable, then correct it so that its value is
C:\Program Files\Java\jdk1.6.0_18
If there is no existing variable, then create one by using the "New" button. It's up to you whether to do it for the current user or for the system.
Do you have two java versions installed?
From the information the sun jre and the Open jdk? The jre has no javac.exe and therefore cant find it.
Try to start your jar with C:\Program Files\Java\jdk1.6.0_18\bin\java.exe instead of only java, if that doesn't help add the -Djava.home="C:\Program Files\Java\jdk1.6.0_18" option to the call.
The error message makes it clear that the lookup is based on java.home, have you tried adjusting that?
This output looks like it is coming from some sort of script which may have it's own definition of java.home which you need to change.
The easiest solution for this problem which I found is to use the JAVA_HOME variable in the script file.
This is the content of my bin\appcfg.cmd:
#"%JAVA_HOME%"\bin\java -cp "%~dp0\..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg %*
Note: you should also check if JAVA_HOME points to an existing JDK
The other way you can do set classpath variable using set CLASSPATH=C:\Program Files\Java\jre6\bin\javac.exe\jdk1.6.0_18 in command prompt, but it works for single session.Everytime you need to set the variable.
Set your JAVA_HOME environment variable to C:\Program Files\Java\jdk1.6.0_18. Note that this variable points to the JDK location, not (unlike the PATH environment variable) to the path where the executables reside.