Upgrade/install Java version in a Mac - java

I am on a Mac. My current Java version is "1.6.0_65". Therefore i want to upgrade it to the latest. I typed the following command on my Mac terminal.
sudo apt-get install oracle-java7-installer
The error i got is sudo: apt-get: command not found. Then i tried using yum command instead. and the error i got it sudo: yum: command not found.
1.) Is there a way to install apt-get and yum on Mac, if so how?
2.) What is the command to upgrade Java using a Mac?

Sudo apt-get is for Ubuntu or Debian, no for Mac. You only need to download java from Oracle or Apple servers and install!!
You can download this http://support.apple.com/kb/dl1573

Apple provides a Java 6 implementation for Mac OS X, based on source code from Oracle's implementation.
Oracle provides a Java 7 implementation that incorporates source code provided by Apple. Apple staff cooperate in its development.
The old URL, nice and short, redirects to Oracle's download page:
http://java.sun.com/
From there navigate to the Java SE download page. Download JRE to run Java software. Download JDK if you want to develop new Java software. Download and run an installer app.
Currently that page URL is:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Oracle also provides an early release of Java 8 for Mac OS X.

Related

macOS - How to install Java 17

Could someone please let me know the steps to install Java on a Mac.
I did brew install java
I get this
Warning: openjdk 17.0.1 is already installed and up-to-date.
To reinstall 17.0.1, run:
brew reinstall openjdk
If I do java -version, I get this.
openjdk version "13.0.8" 2021-07-20
If I have navigate to /Library/Java, I have 2 empty directories.
Where is java 17 installed??
In 2023, even if you can use just brew..
brew install openjdk#17
Java will be installed here:
/usr/local/opt/openjdk#17/bin/java
For the system Java wrappers to find this JDK, symlink it with:
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
...give a try to sdkman, it's far better than brew
curl -s "https://get.sdkman.io" | bash
then open a new shell and try list to see what you could install ;-)
sdk list java
At time of writing you could use:
sdk install java 17.0.4.1-tem
Java will be installed here:
/Users/freedev/.sdkman/candidates/java/17.0.4.1-tem
Java doesn't mind if you install multiple versions. This is often required; java is not backwards compatible (it tries to change little, but e.g. the java8 to java9 transition broke a ton of stuff, much of it needless and much of it not reasonably expectable or fixable by libraries and apps, so a bunch of java apps and libraries only run on java8 - just an example).
So, yes, you have installed JDK17. Also, yes, if you just run java without specifying which one you want, you so happen to get java13 here.
To see all installed javas, you can run:
/usr/libexec/java_home -V
to 'override', you can use something like (depends on which shell you're using on your mac):
export JAVA_HOME=`/usr/libexec/java_home -v 17`
(the backticks mean: Run this then take the output of it and treat that as the 'value' of the expression. here, assign it to the JAVA_HOME env var. -v 17 requests a path to java 17. The -V option lists all and is meant for your eyeballs, not for scripts. The -v option is mostly for scripting, and that's how we're using it here).
JAVA_HOME decides which java is used by some things, but the java you get when you just type java is /usr/bin/java, and that executable is actually just a wrapper that picks a java to run from amongst all installed versions. It uses JAVA_HOME to decide which java to actually run. There are wrappers for all the common commands (javac, too). You can always run e.g. which javac to see what that actually runs; you probably see /usr/bin/javac. Everything in /usr/bin is one of these wrapper thingies that looks at JAVA_HOME and then runs the binary it finds there.
To specify version 17
brew install openjdk#17
Later I add create a link:
sudo ln -sfn /usr/local/opt/openjdk#17/libexec/openjdk.jdk \
/Library/Java/JavaVirtualMachines/openjdk-17.jdk
And use jenv to control which java version to use
To used the version installed by homebrew rather than the one installed by the OS you can get detailed information from homebrew by typing
brew info java
Currently it states
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
openjdk is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS provides similar software and installing this software in
parallel can cause all kinds of trouble.
If you need to have openjdk first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc
For compilers to find openjdk you may need to set:
export CPPFLAGS="-I/opt/homebrew/opt/openjdk/include"
For Homebrew, the package that installs the new AdoptOpenJDK is named as temurin. So you need to use below command:
brew install --cask temurin17
If you get any error like temurin cask not available then update brew using below commands:
brew update
brew tap homebrew/cask-versions
To switch quickly between different versions of java add the entries in bashrc as per your jdk versions like:
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j17="export JAVA_HOME=`/usr/libexec/java_home -v 17`; java -version"
Steps to install
You asked:
let me know the steps to install Java on a Mac.
Download an installer free-of-cost from vendors such as Adoptium, Azul Systems, Bellsoft, Amazon, Oracle, Microsoft, SAP, and others.
Run installer app.
Quit the installer app when done.
Verify installation by typing on a command-line in Terminal.app:java --version
Delete installer app that you downloaded.
Configure your IDE to use that new Java implementation you installed.
Java location
You asked:
Where is java 17 installed??
/Library/Java/JavaVirtualMachines/
In the Finder, choose Go > Go to Folder, and paste /Library/Java/JavaVirtualMachines/.
Note that this is not the Library folder within your home folder. We are not referring to /Users/your_user_name/Library/…. We are referring to the root Library folder that applies across all the user accounts on this Mac.
You said:
I did brew install java
No need for the Homebrew package manager. If you already enjoy using the brew tool, proceed. But if new to Homebrew, skip it if your only goal is to install Java. Just use an installer for Java as you would for many Mac apps.
JavaFX
You added a tag for javafx.
Be aware that for JavaFX, you have two options:
Include the necessary OpenJFX libraries within your development project and within your final app, or …
Use a JDK that includes the JavaFX/OpenJFX libraries.
At least two vendors provide JDK installers that include the JavaFX/OpenJFX libraries:
Azul Systems (ZuluFX)
Bellsoft (LibericaFX)
This answer is specifically if you use Intellij on a Mac
Within IntelliJ, you can use the IDE to add new JDKs of selected versions from common vendors. Instructions for this are here:
Setup the project JDK
When setting up the JDK, you can either:
Select a pre-existing JDK which has been registered with the IDE OR
Use the Add JDK option to add a new JDK which you previously downloaded and installed using the method outlined in Basil's answer OR
Use the Download JDK option to choose a vendor and version of the JDK that the IDE will automatically download, install and make available for selection.
The JDKs installed by Idea will be located in the same location as outlined in Basil's answer for a manual install /Library/Java/JavaVirtualMachines/.
One common issue is that the version of the JDK registered for the project differs from the default version used in the terminal. This can sometimes mean that the app works when run in Idea, then fails when run in the terminal (or, at least that it is executed against a version of the JDK you didn't expect).
To select the version of the JDK to run in the terminal, configure the Java home setting as outlined in rzwitserloot's answer.
export JAVA_HOME=`/usr/libexec/java_home -v 17`
Also, some tools such as the openjfx maven plugin will not use the java version selected in Idea when executing a call to a JDK tool like jlink, but will instead have their own mechanism for finding a JDK to use (e.g. look at JAVA_HOME or use the Maven toolchains plugin). So it is always good to check the JAVA_HOME variable and ensure that it is set to a reasonable value, both for terminal execution and for effective use of Java development tools that may rely on it.
I think that answers here are not fully out of topic, but from my point of view, my case is exactly the same as that of the author. I had already installed java 8, 11, and 13. All of them resides at:
/Library/Java/JavaVirtualMachines/
Nevertheless when I tried to find the path of JDK 17 it resides:
/usr/local/Cellar/openjdk
I use Mac OS Big Sur and the JDK was installed with homebrew
Brew now supports searching old formulae and allowing you to install a specific version. I'm using Homebrew 3.5.2-117-gb941470
Create a local tap: brew tap-new --no-git local/openjdk
Ask Brew to find the formulae of the version you want: brew extract --version 17.0.2 openjdk local/openjdk
Install Java 17 using your new local tap: brew install openjdk#17.0.2
Link the JDK into the MacOS JVM Dir: sudo ln -sfn /usr/local/opt/openjdk#17.0.2/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk17.0.2.jdk
Check Java 17 is available: /usr/libexec/java_home -V
Set Java Home: export JAVA_HOME=$(/usr/libexec/java_home -v17)
Check current version of Java is correct...
$ java --version
openjdk 17.0.2 2022-01-18
The following method installs Java without the need for any additional tools or package managers.
Go to https://jdk.java.net/17/ and download the latest macOS archive.
Download the latest Adoptium release for the Java 17 branch by going to https://adoptium.net/temurin/releases/ and be sure to select the tar.gz version.
The archive is either for x64 (Intel CPU) or for AArch64 (Apple Silicon / M1 CPU).
Then, open a Terminal, and extract the downloaded archive to the system path for Java virtual machines:
cd Downloads
tar xzf OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.5_8.tar.gz -C /Library/Java/JavaVirtualMachines

Pygame and Java JDK 13 installation troubles

Good morning guys,
trying to install the Pygame library on my MacBook Pro...
I encountered some issues that I'm sure you're able to help me with!
First of all I installed the last Python version (3.7.4)
Than I tried to install via pip the Pygame library, but the process
was unsuccessful due to the lack of a Java JKD 13.
I downloaded and installed the last JDK 13 version (Jdk-13_osx-x64)
and this process appeared to be successful.
Trying again to finally install the Pygame library an error occurred:
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home/bin/apt
Can anyone of you guys help me???
Thanks prior!
For Python and Java developers using macOS, I personally recommend installing Python and Java through HomeBrew.
Before you can start your journey as a software developer, you should install Xcode and xcode-select first which is mandatory.
You can install Xcode from Mac AppStore and xcode-select through the following command:
xcode-select --install
After installing the prerequisites, you can install HomeBrew via:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Which is referenced from here
After you've installed HomeBrew you can install Python3 and AdoptopenJDK via the following command:
brew install python3
brew cask install adoptopenjdk
AdoptopenJDK is an open source JDK recommended by myself other than Oracle JDK.
Apt used to be a command coming with the Java Development Kit around Java 6.
Java 6 is also the latest 32-bit version provided by Apple but that doesn’t run on the newest version of Mac OS.
I think you should look for a newer version of pygame compatible with your system.

The program 'jshell' is currently not installed when trying to run jshell on Ubuntu

I have downloaded and "manually" installed JDK 10 for Linux 64bit edition (for Ubuntu 16.04),
Oracle Java SE Development Kit
(note: I wanted to download the Java9 JDK but this is no longer supported and I was referred to the Java 10 SE Development kit instead).
When I try running jshell from a terminal window I get the following error,
The program 'jshell' is currently not installed. To run 'jshell'
please ask your administrator to install the package
'openjdk-9-jdk-headless' You will have to enable the component called
'universe'
I dont know why the message is asking me to install openjdk when I have installed the classic java version. When I run "which jshell" I dont get any details returned.
Can anyone help me get jshell installed and working ?
JShell is a development tool. You should download and install the Java Development Kit to run jshell, not just the Java Runtime Environment.
On Linux, and specificallly Ubuntu, development tools are not best installed via apt. The exception to prove the rule is RVM, which is installed via apt purely so that it will download ruby and ruby gems dynamically outside of apt.
For Java, the equivalent is SDKman, which is installed via curl. Once you have SDKman then you can install Java and other Java type tools.
SDKman in action:
thufir#dur:~$
thufir#dur:~$ sdk list java
================================================================================
Available Java Versions
================================================================================
12.ea.20-open
11.0.1-zulu
> * 11.0.1-open
10.0.2-zulu
10.0.2-open
9.0.7-zulu
9.0.4-open
* 8.0.192-zulu
8.0.191-oracle
7.0.201-zulu
6.0.119-zulu
1.0.0-rc-10-grl
1.0.0-rc-9-grl
1.0.0-rc-8-grl
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
thufir#dur:~$
Generally, umake, or Ubuntu Make, will install IDE or other development tools. Currently, umake is best installed as a snap.
The upshot is to first install SDKman, then snap, then use snap to install umake. Between umake and SDKman your tools should be up to date.
(Ruby uses a similar RVM, which inspired SDKman.)
I followed the tip given by Ernest Kiwele and others above and set-up my JAVA_HOME partly as described in
How to set JAVA_HOME in Linux for all users
but also by creating a sh script in my profile.d directory. Thank you for the help.
I dont feel completely comfortable with my solution since I have configured my Java using update-alternatives. I dont know why people advise to use update-alternatives to set the version of Java to use if the other depending variables aren't set-up at the same time.

issue setting up eclipse on mac osx mavericks

I have a Macbook pro running OSX Mavericks that I'm attempting to setup for Android development.
I downloaded the standard version of Luna Eclipse.
I then downloaded and installed Java 7.
I then attempted to open Eclipse and it wanted to download a Java 6 SE?(I think) version which it did and installed.
Then it told me Version 1.60_65 of the JVM is not suitable for this product. Version 1.7 or greater is required.
What else do I have to install/upgrade?
The issue is that Eclipse wants Java 7 ('Version 1.7'), but OS X demands that you have Java 6 ('Version 1.6') installed in order to use Java applications. So, Eclipse starts, sees Java 6, then quits and tells you to upgrade to Java 7. If you use Java 7, OS X won't let you start Eclipse.
The fix is to install Java 7 (which you already have), uninstall Java 6, then symlink Java 7 to where OS X expects to find Java 6.
As per this link, the procedure goes like this:
# Remove Java 6
sudo rm -rf /System/Library/Java/JavaVirtualMachines/
sudo rm /private/var/db/receipts/com.apple.pkg.JavaForMacOSX*
sudo rm /usr/bin/java
sudo rm /Library/Java/Home
# Symlink Java 7
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home/bin/java /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home /Library/Java/Home
(I'm not at my Mac to try this, but I had to do this to get Eclipse to work myself)
Make sure you have the latest java version. Then you can download Eclipse ADT from: http://developer.android.com/sdk/index.html which will include eclipse and android SDK.
You can also download Android Studio instead of Eclipse, android sdk is also included in the package.
After all open android SDK Manager and download api-s that you need.

Getting started Java with Linux OS

I know this is very basic question, but these days I have done all my Java programs on Windows OS. But now I like to go with Linux.
How JDK and all be installed in Linux OS?
I am using Ubuntu 10.04 LTS.
That is dependent on the distribution you are using -- provide more details so people can be more helpful.
In most distributions however this is as simple as installing a package from the official repositories.
For example, in Debian/Ubuntu etc. you can do:
sudo apt-get install sun-java6-jdk
which will get you both the JDK and the JRE which is a dependency.
On Ubuntu:
$ sudo apt-get install openjdk-6-jdk openjdk-6-demo openjdk-6-doc
gets you the SDK, its demos and documentation. You should then be able to run the first set of examples.
It depends on your distribution. In Ubuntu you would do something like this (as root)...
# aptitude search jdk
After your choice, you install it.
# aptitude install sun-java6-jdk
Don't bother about downloading anything from any website. The package manager (apt-get, aptitude) is doing that for you.
Many Linux distributions package the OpenJDK into their repositories so you can install Java like any other application. If you want the Sun version of Java then you can download a bin or rpm file directly from Sun/Oracle that you can install manually.
The Sun/Oracle version can be found here: http://java.sun.com/javase/downloads/widget/jdk6.jsp Just select Linux as your platform in the form.
In addition to others' answers: If you need Java packages beyond what your distro provides, then check out the JPackage project. JPackage provides RPMs (so it won't work on Debian or Ubuntu, unless you use Alien) of a large number of Java libraries, frameworks, and tools.
As people have noted, you can use apt-get to install the JDK:
sudo apt-get install sun-java6-jdk
Also, if you're looking for a graphical editor, Eclipse is a good one, especially when you're not very familiar with Unix operating systems. It also should come with the JDK included with the default install. You can download that with:
sudo apt-get install eclipse
As Tedil mentioned, you can also get this without the console work via Ubuntu's Software Center in the Applications menu from the top bar.

Categories