Java on Jetson Nano

Hi!
Is it possible to install java on Jetson Nano with Ubuntu 18.04 LTS?
I need to have it installed for installing processing.
Thanks.

I don’t think we have tried it.
Could you go ahead and have it a try? Or let’s see if any other users have experience in it.

I have installed java version 11, but it seems that it is not a valid version that let me install ARM Processing.
I have read in github (https://github.com/processing/processing/issues/5701) that the version 8 is a valid version, but I can’t find Oracle Java 8 version anywhere. The following way to install is no longer valid:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Does somebody have a solution?

what prevents you from using openjdk java?
I used to use java on jetsons.
You do not need Eclipse or IntelJDE, do you?

I don’t have my Nano yet (arrives tomorrow), so haven’t been able to try this, but Azul (who I work for) provide JDK 8 for Arm binaries.

Instructions for using the repository can be found here:

http://repos.azulsystems.com/

@smantikvj: you may use the sequence below:

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk

I have tried openjdk 8 java and it didn’t work.

I found a Linux ARM openjdk 8 java for 64 bits, the Liberica:
https://bell-sw.com/pages/java-8u212
After installing it, I can open Processing but it show a message at the beginning:
“Processing requires Java 8 from Oracle. Other versions such as OpenJDK, IcedTea, and GCJ are strongly discouraged. Among other things, you’re likely to run into problems with sketch windcow size and placement. For more background please read the wiki: https://github.com/processing/processing/wiki/Supported-Platforms#Linux
If I close the window, I enter to the Processing console and I can open example files, but if I run the sketches it doesn’t work, I can see some error messages like:

Exception in thread “Thread-11” java.lang.RuntimeException: Exception while attempting /opt/processing-3.5.3/java/bin/java -agentlib:jdwp=transport=dt_socket,address=8473,server=y,suspend=y,quiet=y -Djna.nosys=true -Djava.ext.dirs=/opt/processing-3.5.3/java/lib/ext -Djava.library.path=:/opt/processing-3.5.3/core/library:/usr/java/packages/lib/aarch64:/lib:/usr/lib -cp /tmp/Esfera7451867829771913641temp:/opt/processing-3.5.3/core/library/jogl-all-natives-windows-amd64.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-windows-i586.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-amd64.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-amd64.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-macosx-universal.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-i586.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-armv6hf.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-macosx-universal.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-i586.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-aarch64.jar:/opt/processing-3.5.3/core/library/core.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-windows-i586.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-aarch64.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-armv6hf.jar:/opt/processing-3.5.3/core/library/gluegen-rt.jar:/opt/processing-3.5.3/core/library/jogl-all.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-windows-amd64.jar:/opt/processing-3.5.3/java/lib/rt.jar:/opt/processing-3.5.3/lib/ant-launcher.jar:/opt/processing-3.5.3/lib/ant.jar:/opt/processing-3.5.3/lib/jna-platform.jar:/opt/processing-3.5.3/lib/jna.jar:/opt/processing-3.5.3/lib/pde.jar:/opt/processing-3.5.3/core/library/core.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-aarch64.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-amd64.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-armv6hf.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-linux-i586.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-macosx-universal.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-windows-amd64.jar:/opt/processing-3.5.3/core/library/gluegen-rt-natives-windows-i586.jar:/opt/processing-3.5.3/core/library/gluegen-rt.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-aarch64.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-amd64.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-armv6hf.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-linux-i586.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-macosx-universal.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-windows-amd64.jar:/opt/processing-3.5.3/core/library/jogl-all-natives-windows-i586.jar:/opt/processing-3.5.3/core/library/jogl-all.jar:/opt/processing-3.5.3/modes/java/mode/JavaMode.jar:/opt/processing-3.5.3/modes/java/mode/antlr.jar:/opt/processing-3.5.3/modes/java/mode/classpath-explorer-1.0.jar:/opt/processing-3.5.3/modes/java/mode/com.ibm.icu.jar:/opt/processing-3.5.3/modes/java/mode/jdi.jar:/opt/processing-3.5.3/modes/java/mode/jdimodel.jar:/opt/processing-3.5.3/modes/java/mode/jdtCompilerAdapter.jar:/opt/processing-3.5.3/modes/java/mode/jsoup-1.7.1.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.core.contenttype.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.core.jobs.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.core.resources.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.core.runtime.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.equinox.common.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.equinox.preferences.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.jdt.core.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.osgi.jar:/opt/processing-3.5.3/modes/java/mode/org.eclipse.text.jar:/opt/processing-3.5.3/modes/java/mode/org.netbeans.swing.outline.jar -ea processing.core.PApplet --display=-1 --sketch-path=/opt/processing-3.5.3/modes/java/examples/Demos/Performance/Esfera Esfera
at processing.core.PApplet.exec(PApplet.java:3563)
at processing.mode.java.runner.Runner$1.run(Runner.java:498)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Cannot run program “/opt/processing-3.5.3/java/bin/java”: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
at processing.core.PApplet.exec(PApplet.java:3561)
… 2 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
… 5 more
:cry:

I don’t know what Eclipse or IntelJDE are. I only need to install Processing (which seeems to need Java 8 from Oracle and no other OpenJDK alternative), and then I need that the Jetson Nano could run Processing java-based sketches.
If could not do that, I could write the sketches in other computer and compile Processing java applications to execute them in the Jetson Nano. This could be a valid alternative, although less desired.

what do you mean under “it did not work”? Could you extend?

Did it throw any particular error to you during installation?

what processing? processing library?

that processing?
https://processing.org/

Cannot run program “/opt/processing-3.5.3/java/bin/java”: error=2, No such file or directory

that seems to be the cause of the error

No, it didn’t work when I run a Processing sketch

Yes, that is the software.

In that folder you can see a file called “java”, but I don’t know why Processing can’t use it.
It’s supposed that when you install Processing you don’t have to install Java, as you can read in https://github.com/processing/processing/wiki/Supported-Platforms#Linux
But, in my case it seems that the system can’t use the Java content file that is included in the Processing installation files. I can’t open Processing if I don’t install Java from Liberica, the Linux ARM openjdk 8 java for 64 bits. In this case, I can open Processing but not to run the sketches.

Thanks.

I have found something in ppa.launchpad.net/webupd8team/java/ubuntu website, but I don’t know what to do with binary files.
Otherwise, I think they are another openJDK version. It would be the same :(

When I get my Nano tomorrow I will figure out the steps to get Java up and running and then Processing.

I’ll post the instructions later.

Thaks a lot, simon-rotter. I’ll be waiting!

OK, I got my Jetson Nano yesterday and have resolved the issue of getting Processing working.

  1. Download the Zulu JDK from here:
    https://www.azul.com/downloads/zulu-embedded/
    You need a 64-bit Arm build. I used the JDK 8 one for simplicity.
    Untar the download using tar -xvf zulu8.38.0.162-ca-jdk1.8.0_212-linux_aarch64.tar.gz

  2. In the Processing directory, there is a java sub-directory. Remove this or move it to something like java-bad.

  3. Copy the untared zulu8 directory to the processing directory and rename it java

  4. Run processing. It will whinge about it not being an Oracle JDK but that doesn’t matter, Processing will now work.

Thanks a lot, simon-ritter!!!
The day before yesterday, I could run in the Jetson Nano the applications exported with Processing in a Windows computer. Those applications were (as logical) configured in the exporting settings as Linux applications for 64 bits. Finally I could run one of them that was configured to be exported with embedded Java, but I had to open terminal and change permissions like this:
sudo chmod a+x nameOfTheApplication
The other day I couldn’t run the sketch exported as a Linux application because it hasn’t execute permissions. Although for me it was enough (I only want Jetson Nano for running some sketches exported as applications), for me is something very very valuable and appreciated to be able to see a Processing sketch in the Jetson Nano and to be able to modify it without a headless VLC connection. So, I’m very very grateful to simon-ritter!!!
:D

Thanks again!!!

Have you tried installing the ARM 64 version here? https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

I tried the other day and it and it doesn’t work. I have tried now following simon-ritter steps and it doesn’t work either.
I am having problems with Processing now. I can’t install any library from the menu “Tools” (interested in “Hardware I/O library”). When I do that, it says “Error during download and install of (the name of the library)”
:(