Ubuntu Java has stopped recognizing a file in Arduino's subdirectories


This note is to advise developers/users that something may have changed in Java in the past few weeks to cause it to stop recognizing a certain file in Arduino on 64-bit processors.

On a fresh install of Arduino, I receive the following error when trying to compile:
"Cannot run program "/home/user/Downloads/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-g++": java.io.IOException: error=2, No such file or directory"

Inspection of my directories shows the arm-none-eabi-g++ file is precisely where java.io.IOException reports it is not. I.E. There is "such a file."

  • Totally fresh 64-bit Ubuntu 12.04 install (past few hours)
  • Totally fresh Arduino install (past few hours)
  • I was running the Beta Arduino (for Due) on this machine successfully within the past week, and compiling to the Due, and there have been no hardware changes. I was reinstalling Linux for unrelated reasons. Have been searching all day for "Cannot run program" errors on forums but nothing matches this perfectly where the file is there so I believe there is a bug and it may be in Java because Java is reporting a file missing that is there in plain sight.

Update 5-25-2012:
I just confirmed above problem. I completely reinstalled Ubuntu 12.04 from scratch. Then the only other actions were the following:

sudo apt-get install gcc-avr avr-libc (a previous recommendation on another Arduino forum)


sudo apt-get install openjdk-6-jre (java is required)

And then I installed the most recent Due-compatible Arduino IDE via tar zxvf. (not the nightly build)

Within the past three months these steps have worked perfectly fine on Ubuntu 12.04. (On several Ubuntu reinstalls!) So something has changed in Java, the gcc cross compiler, or the Arduino IDE to cause the above error. Sigh. Guess I'll go use Windows for Arduino purposes because this machine is duel-boot. Hate working in Windows but Ubuntu is now starting to make me feel the same. Seems to make anything work on Ubuntu these days you must hold your left ear-lobe, balance on the ball of your right foot, and spin around 3 times while speaking a magical incantation and burning incense...And the Linux gods still may not deem fit to make your system function. Just seems to have gotten worse in the past 5 years. Oh well. That's why I have duel boot I guess. Hum-bug. The error above is ridiculous. That file is on this system and this system is clean. I'm mad at java io for delivering that error - It may not even be the real problem...But that is a totally and pathetically bogus error message. Fie upon thee Java! Thou ubiquitous computing strumpet!

What is the exact exception that is shown? The java.io.IOException is also thrown if the file is there, but inaccessible (e.g. due to missing permissions). Can you try to make the file (and the directory where the file is in) world readable?

Thank you for the suggestion. I did attempt your suggestion. Permissions were already pretty liberal - All the folders were at least "read" and the program in question "arm-none-eabi-g++" already had "run as program" checked. I changed folder and file permissions to more liberal settings just to see what it would do. Same error.

The exact exception was "java.io.IOException: error=2, No such file or directory"

OK I googled a solution and it is not a very good one.

If you install "ia32-libs" to run 32-bit executables the Arduino program works on my 64-bit machine.

I found that solution here: http://www.linuxquestions.org/questions/ubuntu-63/command-not-found-but-the-file-file-exists-942367/
That page says the arm-none-eabi-gcc file is a 32-bit file.

The problem is: My machine crashed synaptic on the install 90% through...and I have no idea what that did to my existing Ubuntu libraries. I will restart this thread since this is a Beta software to make sure (hopefully) programmers are able to put a 64-bit version of the software in if it exists somewhere or is available.