UECIDE on Ubuntu

The plugging manager is not starting after activation in pulldown menu "tools".
Please have a look into this issue also.

Comments

It works perfectly on my

It works perfectly on my system. I develop it on Ubuntu, so that is the system it's guaranteed to work best on.

You will have to run it from a terminal, adding --exceptions to the command line, to get any error messages, and then paste them here.

WARNING: An illegal

Result of CLI start with --exceptions:

WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.jtattoo.plaf.JTattooUtilities (file:/usr/share/uecide/uecide.jar) to method sun.swing.SwingUtilities2.getFontMetrics(javax.swing.JComponent,java.awt.Graphics,java.awt.Font) WARNING: Please consider reporting this to the maintainers of com.jtattoo.plaf.JTattooUtilities WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Warning: missing font Monotype Warning: substituting default font for missing font Monotype

Uecide starts OK. The message about "no boards installed" etc. is popping up. I do not select a board but want to start UECIDE the normal way.

Now the same window pops up.
When I click "OK", nothing happens.
Also selecting "tools / plugin manager" does not provoke any reaction.

Going to CLI, result:

java.io.FileNotFoundException: /apt/db/sources.d/internal.db (No such file or directory) at java.base/java.io.FileOutputStream.open0(Native Method) at java.base/java.io.FileOutputStream.open(FileOutputStream.java:299) at java.base/java.io.FileOutputStream.(FileOutputStream.java:238) at java.base/java.io.FileOutputStream.(FileOutputStream.java:188) at java.base/java.io.PrintWriter.(PrintWriter.java:309) at org.uecide.Base.initPackageManager(Base.java:2663) at org.uecide.Base.(Base.java:639) at org.uecide.Base.main(Base.java:185)

Warning: missing font Monaco Warning: substituting default font for missing font Monaco Warning: substituting default font for missing font Monaco Warning: substituting default font for missing font Monaco Warning: substituting default font for missing font Monaco Warning: substituting default font for missing font Monaco Warning: substituting default font for missing font Monaco WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.jtattoo.plaf.JTattooUtilities (file:/usr/share/uecide/uecide.jar) to method sun.swing.SwingUtilities2.getFontMetrics(javax.swing.JComponent,java.awt.Graphics,java.awt.Font) WARNING: Please consider reporting this to the maintainers of com.jtattoo.plaf.JTattooUtilities WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Warning: substituting default font for missing font Monaco

The try just befoer I did without "sudo".
With "sudo" the result is:
sudo uecide --exceptions [sudo] password for ellard: 0 packages can be upgraded. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.jtattoo.plaf.JTattooUtilities (file:/usr/share/uecide/uecide.jar) to method sun.swing.SwingUtilities2.getFontMetrics(javax.swing.JComponent,java.awt.Graphics,java.awt.Font) WARNING: Please consider reporting this to the maintainers of com.jtattoo.plaf.JTattooUtilities WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Warning: missing font Monotype Warning: substituting default font for missing font Monotype Warning: substituting default font for missing font Monotype

Now UECIDE starts, pop-up is OK and the plugin manager starts. The board is installed.

When I do not "sudo". the plugin manager does not start.

Hope this helps.

I do have java installed:

I do have java installed:

java -version openjdk version "10.0.2" 2018-07-17 OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4) OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4, mixed mode)

I don't know if it is normal

I don't know if it is normal or not but as soon as I close the terminal, UECIDE is terminated also.
This means that until further notice I am confined to run UECIDE on mac. (compiles three times slower than on ubuntu)

java.io.FileNotFoundException

java.io.FileNotFoundException: /apt/db/sources.d/internal.db (No such file or directory) 

That's the main thing of concern. For some reason it's looking in /apt instead of /home/<yourname>/.uecide/apt/...

It could be that for some reason your Java user.home isn't being set right. Not sure on that one.

By running it as root it's able to make the /apt folder (which is a bad idea really) and operate.

I have knocked up a little Java program that prints all the system properties. If you could run it for me and paste the results here I can inspect your Java setup better.

you@yourpc:~$ tar xvf Downloads/SysProbe.tar
SysProbe.jar
you@yourpc:~$ java -jar ./SysProbe.jar
... lots of junk printed ...

There's nothing sensitive in the output - it's just the contents of the Java System properties. Here's the output of it on my PC:

awt.toolkit=sun.awt.X11.XToolkit
java.specification.version=10
file.encoding.pkg=sun.io
sun.cpu.isalist=
sun.jnu.encoding=UTF-8
java.class.path=./SysProbe.jar
java.vm.vendor=Oracle Corporation
sun.arch.data.model=64
java.vendor.url=http://java.oracle.com/
user.timezone=
os.name=Linux
java.vm.specification.version=10
sun.java.launcher=SUN_STANDARD
user.country=GB
sun.boot.library.path=/usr/lib/jvm/java-11-openjdk-amd64/lib
sun.java.command=./SysProbe.jar
jdk.debug=release
sun.cpu.endian=little
user.home=/home/matt
user.language=en
java.specification.vendor=Oracle Corporation
java.version.date=2018-07-17
java.home=/usr/lib/jvm/java-11-openjdk-amd64
file.separator=/
java.vm.compressedOopsMode=Zero based
line.separator=

java.specification.name=Java Platform API Specification
java.vm.specification.vendor=Oracle Corporation
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
java.runtime.version=10.0.2+13-Ubuntu-1ubuntu0.18.04.4
user.name=matt
path.separator=:
os.version=4.15.0-46-generic
java.runtime.name=OpenJDK Runtime Environment
file.encoding=UTF-8
java.vm.name=OpenJDK 64-Bit Server VM
java.vendor.url.bug=http://bugreport.java.com/bugreport/
java.io.tmpdir=/tmp
java.version=10.0.2
user.dir=/home/matt/sysprobe
os.arch=amd64
java.vm.specification.name=Java Virtual Machine Specification
java.awt.printerjob=sun.print.PSPrinterJob
sun.os.patch.level=unknown
java.library.path=/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
java.vendor=Oracle Corporation
java.vm.info=mixed mode
java.vm.version=10.0.2+13-Ubuntu-1ubuntu0.18.04.4
sun.io.unicode.encoding=UnicodeLittle
java.class.version=54.0

And if you're interested, all the program consists of is:

package uk.co.majenko.sysprobe;

import java.util.*;

public class SysProbe {
    public static void main(String[] args) {
        Properties p = System.getProperties();
        Set<String> props = p.stringPropertyNames();
        for (String prop : props) {
            System.out.println(prop + "=" + System.getProperty(prop));
        }
    }
}

In the meantime I will inspect what it's doing with the internal.db file to see if there's some reason it wants to put it in /apt when it shouldn't.

Attachments: 

Oh and yes, it's normal that

Oh and yes, it's normal that when you close the terminal UECIDE also closes. That's because the terminal process is the parent of the UECIDE java process. Kill the parent and the children all die.

You can detach it by adding an & to the end of the command, but I really wouldn't run it as root - that's not a clever thing to do.

You can possibly (temporarily) fix it by adding the --datadir flag to the command line:

you@yourpc:~$ uecide --datadir=/home/<yourname>/.uecide

If that works you can add the & to the end so you can close the terminal.

Here is the result of your

Here is the result of your file:

ellard@lelux:~$ java -jar ./SysProbe.jar
sun.desktop=gnome
awt.toolkit=sun.awt.X11.XToolkit
java.specification.version=10
file.encoding.pkg=sun.io
sun.cpu.isalist=
sun.jnu.encoding=UTF-8
java.class.path=./SysProbe.jar
java.vm.vendor=Oracle Corporation
sun.arch.data.model=64
java.vendor.url=http://java.oracle.com/
user.timezone=
os.name=Linux
java.vm.specification.version=10
sun.java.launcher=SUN_STANDARD
user.country=US
sun.boot.library.path=/usr/lib/jvm/java-11-openjdk-amd64/lib
sun.java.command=./SysProbe.jar
jdk.debug=release
sun.cpu.endian=little
user.home=/home/ellard
user.language=en
java.specification.vendor=Oracle Corporation
java.version.date=2018-07-17
java.home=/usr/lib/jvm/java-11-openjdk-amd64
file.separator=/
java.vm.compressedOopsMode=32-bit
line.separator=

java.specification.name=Java Platform API Specification
java.vm.specification.vendor=Oracle Corporation
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
java.runtime.version=10.0.2+13-Ubuntu-1ubuntu0.18.04.4
user.name=ellard
path.separator=:
os.version=4.18.0-17-generic
java.runtime.name=OpenJDK Runtime Environment
file.encoding=UTF-8
java.vm.name=OpenJDK 64-Bit Server VM
java.vendor.url.bug=http://bugreport.java.com/bugreport/
java.io.tmpdir=/tmp
java.version=10.0.2
user.dir=/home/ellard
os.arch=amd64
java.vm.specification.name=Java Virtual Machine Specification
java.awt.printerjob=sun.print.PSPrinterJob
sun.os.patch.level=unknown
java.library.path=/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
java.vendor=Oracle Corporation
java.vm.info=mixed mode
java.vm.version=10.0.2+13-Ubuntu-1ubuntu0.18.04.4
sun.io.unicode.encoding=UnicodeLittle
java.class.version=54.0
ellard@lelux:~$ 

I wonder what turns out to be the cause.

uecide --datadir=/home//

uecide --datadir=/home/-name-/.uecide
works.

UECIDE starts correctly and the board can be installed.

Adding "&" with and without "space" has no effect

Odd. That all looks perfectly

Odd. That all looks perfectly fine. Your user.home is set perfectly correctly.

It could be that your preferences.txt file has ended up with a locations.data setting in it that's messing things up.

You can also edit the uecide

You can also edit the uecide command file itself to add the --datadir flag. If you installed through apt then it's /usr/bin/uecide - otherwise it's in the folder you extracted when you downloaded UECIDE.

It's just a text (script) file, so find the line

java -jar ${APPDIR}/uecide.jar $*

and add the --datadir flag between the uecide.jar and the $*. Of course, if you installed through apt you'll have to edit it as root...

I tried several things which

I tried several things which lead to no result.
sudo apt-get --purge remove uecide to remove the software.
Installing via apt-get install results in a version which is behaving incorrectly.
sudo apt-get --purge remove uecide to remove the software.
Downloading the software and installing via java -jar ${APPDIR}/uecide.jar --data=/home/ellard/.uecide $* leads to a correctly working software.
But the only way to start the software is through the CLI, not graphically.

Until now not very satisfying.

I do have a solution which

I do have a solution which works. Install via apt-get install.
adapt the file "uecide" in directory "/usr/bin".

java -jar ${APPDIR}/uecide.jar --datadir=/home/ellard/.uecide $*.

Now the software can be used via the GUI.

Thanks for your support

I can replicate your symptoms

I can replicate your symptoms if I manually edit my preferences.txt file and add:

locations.data=

to it. That breaks everything.

The simplest cure is to use uecide --reset-preferences to clean the file up.

As an extra protection I have

As an extra protection I have added code to trap an invalid locations.data setting and ignore it.

Excellent. So it was a

Excellent. So it was a corrupted preferences.txt. Now ... why did it get corrupted...?

Pages