hello am trying to set environment for react native development, i followed all the steps in the get started guide, am trying to run the project on a Genymotion emulator, when i try to start the project i get an error message saying that i didn't set the java_home path, i watched a tutorial on how to do that, i think my problem is that am setting the path wrong... this is the path to java exe files from the tutorials :
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/java/jdk1.7.0_65/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/java/jdk1.7.0_65/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/java/jdk1.7.0_65/bin/javaws"
the path to those files in my computer is this :
/usr/lib/java/jdk-12.0.2_linux-x64_bin/data/usr/lib/jvm/jdk-12.0.2/bin$
so am wondering what to change.
..... this is a screenshot of ls "bin" !
To set JAVA_HOME environment variable, do the following:
Launch Terminal by pressing Ctrl+Alt+T on your keyboard.
Enter the following command:
$ gksudo gedit /etc/environment
Depending on where you installed your Java, you will need to provide the full path. For this example, I installed Oracle JDK 7 in the /usr/lib/jvm/java-7-oracle directory.Scroll to the end of the file and enter the following:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME
Save your file and exit gedit.
Lastly, reload the system PATH with the following command:
$ . /etc/environment
The above method will save you the hassle in having to run the commands every time you log in to your computer.
I am trying to install Juniper Network connect 32 bit on my 64 bit Ubuntu 14.10. following the documentation here
Network connect needs the java 32 bit to be installed along with the 64 java.
those are some commands i used while installing java 64:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jre1.8.0_31/bin/java" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jre1.8.0_31/bin/javaws" 1
sudo update-alternatives --set javaws /usr/local/java/jre1.8.0_31/bin/javaws
Next I installed java 32 under this directory Usr/local/Java32/jre.8.0_31.
Im trying as written in the tutorial to make Network Connect link to Java32 instead of java64 while jave 64 is the default. so I'm using this command line:
sudo update-alternatives --install /usr/bin/java java /usr/java32/jre1.8.0_31/bin/java 10.
But it is not working! i tried it different times with different changes and ofcourse i got this message:
too many levels of symbolic links
how do i undo all the update-alternatives i made? and what is the right way to link to java 32?
Use this command to start network connect which i am reproducing from the same juniper's page (there is a bug in the command. use -jar & not -cp as given by them). please note the NC.jar sits in your $HOME/.juniper_networks/
And in the command, for give java 6 bin path (in your case, /usr/java32/hre1.8.0_31/bin/java)
<java_path> -jar NC.jar -h <ivehostname> -u <username> -p <password> [-r <realm>]
-f <ivecertificate_in_der_format> [-l <gui_log_level> [-L <ncsvc_log_level>] [-y <proxy> -
z <proxy_port> [-s <proxy_username> -a <proxy_password> [-d <proxy_domain>]]]
I have a background in pyton and javascript. For my work I would like to develop some extra skills in the scala language. I needed java 7 for Coursera's Functional Programming course to get the homework assignments tool to work. Unfortunately, none of the java tools seem to work on my machine after deinstalling java 8 and installing java7.
In the terminal I get this;
$ java
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/Home/bin/java" (-1)
$ scala
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/Home/bin/java" (-1)
$ sbt
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/Home/bin/java" (-1)
It seems like java cannot find the right jdk, so I changed the JAVA_HOME variable. In my .zshrc file I have the following defined;
export $JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin'
Oddly, to me, this gives an error when I start up a new terminal.
/Users/code/.zshrc:80: /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin not found
This is odd to me because I can cd to this link from the terminal. And from there I can confirm that it exists;
$ pwd
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin
$ ls
appletviewer java jcmd jmc jstatd policytool servertool
apt javac jconsole jps jvisualvm rmic tnameserv
extcheck javadoc jdb jrunscript keytool rmid unpack200
idlj javafxpackager jhat jsadebugd native2ascii rmiregistry wsgen
jar javah jinfo jstack orbd schemagen wsimport
jarsigner javap jmap jstat pack200 serialver xjc
Again, I am rather new to java and even more new on how the terminal variables need to be defined for it to work, so I might be missing a huge point. What step am I missing?
Your $JAVA_HOME variable should point to the Home directory, not the bin directory, so change your env variable to:
$ export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/'
I am using Linux Mint Cinnamon 14. I have set the $JAVA_HOME and $PATH environment variables in ~/.profile as follows:
export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=/home/aqeel/development/jdk/jdk1.6.0_35/bin:$PATH
I then did source ~/.profile to make the proper changes.
When I execute java -version command to check the active java version, it shows the default (already installed open-jdk) java version. How can I override the default open-jdk with the one I downloaded?
UPDATE:
which java says /usr/bin/java
$JAVA_HOME/bin/java -version says 'Permission Denied'
sudo $JAVA_HOME/bin/java -version (asks for password, then) says Command not found
but cd $JAVA_HOME/bin, and ls shows that it is right directory.
While it looks like your setup is correct, there are a few things to check:
The output of env - specifically PATH.
command -v java tells you what?
Is there a java executable in $JAVA_HOME\bin and does it have the execute bit set? If not chmod a+x java it.
I trust you have source'd your .profile after adding/changing the JAVA_HOME and PATH?
Also, you can help yourself in future maintenance of your JDK installation by writing this instead:
export JAVA_HOME=/home/aqeel/development/jdk/jdk1.6.0_35
export PATH=$JAVA_HOME/bin:$PATH
Then you only need to update one env variable when you setup the JDK installation.
Finally, you may need to run hash -r to clear the Bash program cache. Other shells may need a similar command.
Cheers,
update-java-alternatives
The java executable is not found with your JAVA_HOME, it only depends on your PATH.
update-java-alternatives is a good way to manage it for the entire system is through:
update-java-alternatives -l
Sample output:
java-7-oracle 1 /usr/lib/jvm/java-7-oracle
java-8-oracle 2 /usr/lib/jvm/java-8-oracle
Choose one of the alternatives:
sudo update-java-alternatives -s java-7-oracle
Like update-alternatives, it works through symlink management. The advantage is that is manages symlinks to all the Java utilities at once: javac, java, javap, etc.
I am yet to see a JAVA_HOME effect on the JDK. So far, I have only seen it used in third-party tools, e.g. Maven.
If you want to use JDKs downloaded from Oracle's site, what worked for me (using Mint) is using update-alternatives:
I downloaded the JDK and extracted it just anywhere, for example in /home/aqeel/development/jdk/jdk1.6.0_35
I ran:
sudo update-alternatives --install /usr/bin/java java /home/aqeel/development/jdk/jdk1.6.0_35/bin/java 1
Now you can execute sudo update-alternatives --config java and choose your java version.
This doesn't set the JAVA_HOME variable, which I wanted configured, so I just added it to my ~/.bashrc, including an export JAVA_HOME="/home/aqeel/development/jdk/jdk1.6.0_35" statement
Now, I had two JDKs downloaded (let's say the second has been extracted to /home/aqeel/development/jdk/jdk-10.0.1).
How can we change the JAVA_HOME dynamically based on the current java being used?
My solution is not very elegant, I'm pretty sure there are better options out there, but anyway:
To change the JAVA_HOME dynamically based on the chosen java alternative, I added this snippet to the ~/.bashrc:
export JAVA_HOME=$(update-alternatives --query java | grep Value: | awk -F'Value: ' '{print $2}' | awk -F'/bin/java' '{print $1}')
Finally (this is out of the scope) if you have to change the java version constantly, you might want to consider:
Adding an alias to your ~./bash_aliases:
alias change-java="sudo update-alternatives --config java"
(You might have to create the file and maybe uncomment the section related to this in ~/.bashrc)
$JAVA_HOME/bin/java -version says 'Permission Denied'
If you cannot access or run code, it which be ignored if added to your path. You need to make it accessible and runnable or get a copy of your own.
Do an
ls -ld $JAVA_HOME $JAVA_HOME/bin $JAVA_HOME/bin/java
to see why you cannot access or run this program,.
When it searches for java it looks from left to right in path entries which are separated by : so you need to add the path of latest jdk/bin directory before /usr/bin, so when it searches it'll find the latest one and stop searching further.
i.e. PATH=/usr/java/jdk_1.8/bin:/usr/bin:..... and so on.
then initialize user profile using command: source ~/.bash_profile
and check with: [which java]
you'll get the right one.
check available Java versions on your Linux system by using update-alternatives command:
$ sudo update-alternatives --display java
Now that there are suitable candidates to change to, you can switch the default Java version among available Java JREs by running the following command:
$ sudo update-alternatives --config java
When prompted, select the Java version you would like to use.1 or 2 or 3 or etc..
Now you can verify the default Java version changed as follows.
$ java -version
Try this:
export JAVA_HOME=put_here_your_java_home_path
type export PATH=$JAVA_HOME/bin:$PATH (ensure that $JAVA_HOME is the first element in PATH)
try java -version
Reason: there could be other PATH elements point to alternative java home. If you put first your preferred JAVA_HOME, the system will use this one.
There is an easy way, just remove the symbolic link from "/usr/bin". It will work.
Updating the ~/.profile or ~/.bash_profile does not work sometimes. I just deleted JDK 6 and sourced .bash_profile.
Try running this:
sudo rm -rd jdk1.6.0_* #it may not let you delete without sudo
Then, modify/add your JAVA_HOME and PATH variables.
source ~/.bash_profile #assuming you've updated $JAVA_HOME and $PATH
In Linux Mint 18 Cinnamon be sure to check /etc/profile.d/jdk_home.sh I renamed this file to jdk_home.sh.old and now my path does not keep getting overridden and I can call java -version and see Java 9 as expected. Even though I correctly selected Java 9 in update-aternatives --config java this jdk_home.sh file kept overriding the $PATH on boot-up.
I'm trying to install ZeroMQ's Java library but I've been having problem. First error was ./configure complained about JAVA_HOME which everything seemed to be fine but I couldn't manage to solve it but I've found a particular solution in ZeroMQ's chat logs.
The suggested solution was;
JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home" ./configure
However it doesn't work for me. The error message I've been receiving is
checking for jni.h in /Library/Java/Home/include... configure: error: cannot find jni.h in /Library/Java/Home/include.
I've tried JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home" ./configure and JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home" ./configure as well but still no luck. I'd like to hear StackOverflowers' thoughts about how I can solve this.
Thanks.
Since I installed JDK1.7 from oracle, so I need to specify another JAVA_HOME.
# prepare java home
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home
cd $JAVA_HOME
sudo ln -s include Headers
# fix jni_md.h: No such file or directory problem during `make`
sudo cp include/darwin/* include/
cd -
# do real stuff
git clone http://github.com/zeromq/jzmq
cd jzmq
./autogen.sh
JAVAC=$JAVA_HOME/bin/javac ./configure
make
sudo make install
Then do a test with: (note: the first local_lat will quit by itself after the test)
java -Djava.library.path=/usr/local/lib -classpath /usr/local/share/java/zmq.jar:perf/ local_lat tcp://127.0.0.1:5555 30 100 &
java -Djava.library.path=/usr/local/lib -classpath /usr/local/share/java/zmq.jar:perf/ remote_lat tcp://127.0.0.1:5555 30 100
Should got mean latency printed.
What I did for the missing jni.h on Mac OSX Snow Leopard:
cd /Library/Java/Home
sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Headers/ ./include