You are viewing a static version of the site. Enable JavaScript to benefit from the
full functionality of this site and enable such things as forum posting.
UECIDE on Ubuntu
eporocrail:
The plugging manager is not starting after activation in pulldown menu "tools".
Please have a look into this issue also.
matt:
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.
eporocrail:
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.<init>(FileOutputStream.java:238)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:188)
at java.base/java.io.PrintWriter.<init>(PrintWriter.java:309)
at org.uecide.Base.initPackageManager(Base.java:2663)
at org.uecide.Base.<init>(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.
eporocrail:
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)
eporocrail:
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)
matt:
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.
matt:
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.
eporocrail:
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.
eporocrail:
uecide --datadir=/home/-name-/.uecide
works.
UECIDE starts correctly and the board can be installed.
Adding "&" with and without "space" has no effect
matt:
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.
matt:
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...
eporocrail:
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.
eporocrail:
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
matt:
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.
matt:
As an extra protection I have added code to trap an invalid locations.data
setting and ignore it.
eporocrail:
I undid the line in "uecide" and ran your line.
It is working correctly now.
Thanks again.
matt:
Excellent. So it was a corrupted preferences.txt. Now ... why did it get corrupted...?