Is Oracle JDK required for Processing ARM to run?

First time poster here.

I’ve just installed Processing on a Pinebook Pro (ARM64 processor; nice machine!) running Manjaro Preview 4. I’m getting a list of Java-related errors when I invoke Processing from the command line or GUI icon. For example:

Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException

Java is not currently installed on the machine.

$ java -version
bash: java: command not found

The forums provide conflicting views about whether Processing comes with its own Java implementation and users are not required to install Java separately; the counter view is the reverse of this. I am left somewhat confused. Can anyone confirm which case is correct for Processing for ARM?

If I have to install Oracle Java JDK to get Processing to work, then does anyone have a step-by-step guide for a noob about how to do this? I have downloaded jdk-8u231-linux-arm64-vfp-hflt.tar.gz from the Oracle site but am unclear about the steps required to successfully install it for use with Processing.

Remember, I’m using Manjaro ARM so please don’t refer me to an Ubuntu PPA or tell me to use a Raspbian image. :slight_smile:

I do hope I get Processing running on my Pinebook Pro.

Thanks.

1 Like

not sure i can help,

for me is not clear what processing you installed,
( why you not detailed that ( link / file name … )
but sure, if it is a processing like i know it from Raspberry Pi
it comes with its own java, so…

when you try from terminal

$ java --version

you get a possibly installed java BUT not the one from processing.

here ( RPI 3 B + )

pi@RPI:~ $ java --version
openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Raspbian-1deb10u1)
OpenJDK Server VM (build 11.0.5+10-post-Raspbian-1deb10u1, mixed mode)
pi@RPI:~ $ 

that one is installed, but that does not matter for processing if it has its own???

so when i run processing i can ask it

__SYS INFO :
System     : Linux  4.19.75-v7+
JAVA       : /usr/local/lib/processing-3.5.3/java rev: 1.8.0_202
OPENGL     : VENDOR Broadcom RENDERER VideoCore IV HW VERSION OpenGL ES 2.0 GLSL_VERSION: OpenGL ES GLSL ES 1.00
user.home  : /home/pi
user.dir   : /usr/local/lib/processing-3.5.3
user.name  : pi

and the path info for java

pi@RPI:/usr/local/lib/processing-3.5.3/java $ tree -d
.
├── bin
└── lib
    ├── applet
    ├── arm
    │   ├── client
    │   ├── jli
    │   └── server
    ├── cmm
    ├── ext
    ├── fonts
    ├── images
    │   └── cursors
    ├── jfr
    ├── management
    ├── oblique-fonts
    └── security
        └── policy
            ├── limited
            └── unlimited

19 directories
pi@RPI:/usr/local/lib/processing-3.5.3/java $ 

please now try to find your processing installation
and check if there is a java included or not.

if yes, not need to install any add JAVA

if no, install 1.8.0_202

1 Like

Thank you @kll for your detailed reply. I was clear in my first post that I was running processing under Manjaro Linux on a Pinebook Pro. It’s very similar a RPi installation.

Java appears to be installed, that is, I can see a directory tree similar to yours:

[mb668@PBP java]$ tree -d
.
├── bin
└── lib
    ├── aarch64
    │   ├── jli
    │   └── server
    ├── applet
    ├── cmm
    ├── ext
    ├── fonts
    ├── images
    │   └── cursors
    ├── jfr
    ├── management
    ├── oblique-fonts
    └── security

My system does not recognise that Java is installed …

$ java -version
bash: java: command not found

… so even though some Java files may have been installed as part of Processing, they are not being recognised by either my system or Processing itself.

I now face two possibilities:

  1. How to configure Processing to use the Java files that are part of its own installation, or

  2. How to install Oracle JDK (my original question).

Thanks.

-1-

even now it is not clear WHAT / HOW you have installed processing.
this? http://download.processing.org/processing-3.5.3-linux-armv6hf.tgz
( that contains JAVA )

-2- yes that looks like java ?aarch64?
but could not see the path where it is under…

-3- NO,

will never show the java inside a processing install ( unless you force it )
that is same on all systems :
you not need to install JAVA if the processing comes with java.
if other java install on the system also does not matter

BUT if processing has no internal java you must install java,
and the exact version needed by processing.


over all i can not help because i not know / have your system.
still i hope that general info helps as a start,
until some expert can tell you what to do,
or has more info if, for that hardware and OS, a processing build currently available.

Yes, that is exactly the version I have installed. It contains Java.
n
I extracted the .tgz file and then cd to the resulting processing-3.5.3 folder, then

sudo ./install.sh

This creates the desktop icon labelled Processing IDE. It all looks fine, but on execution I get the following errors:

[mb668@PBP processing-3.5.3]$ Exception in thread "AWT-EventQueue-0" java.awt.HeadlenssException
	at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
	at java.awt.Window.<init>(Window.java:536)
	at java.awt.Frame.<init>(Frame.java:420)
	at java.awt.Frame.<init>(Frame.java:385)
	at processing.app.Messages.showTrace(Messages.java:177)
	at processing.app.Base$1.run(Base.java:119)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

I have taken all this to be Java-related, and hence my questions about whether or not Java is installed on my system (yes, apparently, via the installation of Processing itself).

If Java is installed, and configured correctly, then why are these Java errors being generated?

1 Like

did you google about if some one ever use processing

  • on that hardware and
  • that Manjaro Linux?

Looks to me like mismatch in architectures. 32 bit arm on 64 bit aarch64.

3 Likes

Yes, of course. I would not post to this forum without doing basic online research first.

The hardware is new (released only a few weeks ago) and there is no prior experience of anyone using Processing with it. Similarly, Manjaro ARM, especially on this hardware, is also very new.

I would be surprised given that you can find java version to install, yes there are zero vm might be available but performance will be slow (established jvms use assembly code).

1 Like

Ah, right. That would explain a lot!

It looks like the ARM version of Processing is 32-bit only. Am I SOL then?

Most probably, when I got my RaspberryPI4 I thought I would install a 64 bit ArchLinux distro, but it was a mistake, as only JVM available was the zero vm ones and performance was useless. Furthermore rest of distro was not optimized like RasbpberryPI buster, so even video driver was not too hot.

2 Likes

Thanks. That’s good to know (though kind of annoying too) :smiley:

I’ve run Processing on a Pi 3B+ before and (wrongly) assumed that I could run it on a different ARM device without trouble. It might be a case of waiting for the software to catch up with the hardware.

I’m a bit out of my depth in asking this but wonder if it’s possible to configure Processing to use Oracle JDK rather than its built-in Java. Oracle has a Linux ARM64 version. Would this solve the architecture mismatch problem?

on the other side,
i downloaded
processing-3.5.3-linux-armv6hf.tgz
from http://download.processing.org/

and look inside and see
/processing-3.5.3/java/lib/arm
and NOT your

lib
    ├── aarch64

so what you really install???

Based on @monkstone diagnosis a couple of comments back, it appears that there’s an architecture difference between your (32-bit) and my (64-bit) system. That explains the difference in tree structure.

i did not talk about my system,
i only asked what file you download and installed
and insofar your info is not consistent


other point might be that it is not that hardware and software have to catch up…
there seems to be problem with oracle not supporting all.

I will park this problem for the time being. The solution (if any) does not seem straightforward.

Thanks to everyone who replied.

1 Like

Worth knowing about https://archlinuxarm.org/about

1 Like

Thanks for that. I’m currently running Manjaro ARM, based on Arch. I made a mess of an arch installation years ago and have not had the courage to return :slight_smile:

As a 5+ year Debian user, I’m loving Manjaro … just wish I could run Processing on this new notebook.

@mb668 @kll Recently I had some success with 64 bit manjaro on Experiments with 64 bit OS on RaspberryPI4

1 Like