Print at Dec 19, 2025, 5:23:02 AM View all posts in this thread on one page
Posted by DmitriB at Sep 5, 2015, 7:15:40 PM
cool   Sweet Home 3D on Ubuntu 15.04 (Vivid Vervet), Java 8 fixed
Dear all,
I just fixed working Sweet Home 3D on Ubuntu 15.04 (Vivid Vervet)

OS: Ubuntu 15.04 (Vivid Vervet) 64 bit
Java: Oracle's Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java 3D and : 1.6.0-pre12-daily-experimental, upgraded according to information in https://gouessej.wordpress.com/2012/08/01/jav...e-retour-java-3d-is-back/

I installed SH3D in $HOME/SweetHome3D-5.0
All updated and new jars were added in $HOME/SweetHome3D-5.0/lib directory. I wrote a bash script to get SH3D running on. You can read it below to get details.

I guess It should be similar way to update Java 3d for Windows and MacOS.

Hope this information will be useful for developers and everyone, particularly to make SH3D work better on Linuxes and various OSes.

Regards,
Dmitri Bezgodov

==BASH SCRIPT to start SH3D===

====CUT HERE ====
#!/bin/sh

# This is a bash script for Sweet Home 3D
# Tested on UBUNTU 15.04 64bit with Oracle Java 8 JDK insalled
# Author: Dmitri Bezgodov mailto: [email protected]

# The function checks if string contains a given substring
stringContain() { [ -z "${2##*$1*}" ]; }

# CHECK JAVA & JAVA VENDOR

INSALLJAVAMSG="Please install Oracle JDK by command:\nsudo apt-get install oracle-java8-installer"

JAVA=$(which java)

if [ $? -ne 0 ]; then
echo -e ${INSTALLJAVAMSG}
exit 1
fi

VENDOR=$(${JAVA} -XshowSettings 2>&1 |grep 'java.vendor = ')

if stringContain "Oracle"; then
echo "Java Vendor is Oracle. Looks good. Here we go.."
else
echo -e ${INSTALLJAVAMSG}
exit 1
fi

# GET JAVA RE HOME
# E.g. java.home = /usr/lib/jvm/java-8-oracle/jre

JRE_HOME=$(${JAVA} -XshowSettings 2>&1 |grep 'java.home = '|awk '{ print $3}')

# Sweet Home 3D Version
VER='5.0'

# Retrieve Sweet Home 3D directory. Take attention on its version
SWEET_HOME="${HOME}/SweetHome3D-${VER}"

##echo "TEST: ${SWEET_HOME}"

if [ ! -d "${SWEET_HOME}" ] ; then
echo "Please set up SWEET_HOME_3D Directory to where Sweet Home 3d has been installed."
echo -e "E.g. here ${SWEET_HOME}"
exit 1;
fi

# Build Jars for CLASSPATH
JARPATH="${JRE_HOME}/lib/javaws.jar"

for JAR in ${SWEET_HOME}/lib/*.jar ; do
JARPATH="${JARPATH}:${JAR}"
done

##echo "TEST: $JARPATH"

${JAVA} -Xmx1024m -classpath "$JARPATH" \
-Djava.library.path="${SWEET_HOME}"/lib \
-Dcom.eteks.sweethome3d.applicationId=SweetHome3D#Installer \
com.eteks.sweethome3d.SweetHome3D \
-open "$1" \
-Djava.library.path="${SWEET_HOME}"/lib \
-Dcom.eteks.sweethome3d.applicationId=SweetHome3D#Installer \
com.eteks.sweethome3d.SweetHome3D \
-open "$1"
=== CUT HERE ====

Posted by Puybaret at Sep 6, 2015, 12:30:27 PM
Re: Sweet Home 3D on Ubuntu 15.04 (Vivid Vervet), Java 8 fixed
Thanks for the suggestion but you should know that if Sweet Home 3D installer doesn't come with a copy of Java 8 yet, it's because of this bug.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator

Posted by DmitriB at Sep 6, 2015, 4:45:12 PM
Re: Sweet Home 3D on Ubuntu 15.04 (Vivid Vervet), Java 8 fixed
Thanks for the suggestion but you should know that if Sweet Home 3D installer doesn't come with a copy of Java 8 yet, it's because of this bug.


Dear Emmanuel,
I played a couple of hours with SH3D that I modified and I could NOT reproduce the bug you pointed out.
I made my own >10MB home plan - NO problem.

I'm going to make another home plan, we will see results soon.

Dmitri

Posted by Puybaret at Sep 6, 2015, 6:17:15 PM
Re: Sweet Home 3D on Ubuntu 15.04 (Vivid Vervet), Java 8 fixed
I didn't try under Ubuntu 15 yet, but under Ubuntu 14 and Java 8u60, the bug is still here:
- select Floor color or texture option in Sweet Home 3D preferences
- draw a room
- modify the room, choosing a texture for its floor.
Try to resize the window or the plan, and you'll see the plan isn't drawn anymore.
Please report if you see the same issue under Ubuntu 15.

As Oracle closed this bug, I fear it will take long before it's got fixed, unless it's an error in Ubuntu graphics layer. If there's nothing new about this bug in a few months, I'll simply disable floor textures under Linux when the program is run with Java 7/8.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator

Posted by DmitriB at Sep 7, 2015, 5:26:01 PM
Re: Sweet Home 3D on Ubuntu 15.04 (Vivid Vervet), Java 8 fixed
Finally, I have caught the bug! LOL

Exception in thread "AWT-EventQueue-0" java.lang.InternalError: Surface not cachable
at sun.java2d.xr.XRPaints$XRTexture.getAccSrcSurface(XRPaints.java:211)
at sun.java2d.xr.XRPaints$XRTexture.isPaintValid(XRPaints.java:224)
at sun.java2d.xr.XRPaints.isValid(XRPaints.java:75)
at sun.java2d.xr.XRSurfaceData.getMaskFill(XRSurfaceData.java:205)
bla-bla

You are right, but I don't understand why the bug was closed unfixed...

Nevertheless the Sweet Home 3D remains an excellent and useful program. :)

Thanks a lot!
Dmitri

Posted by dorin at Sep 9, 2015, 8:52:30 PM
Re: Sweet Home 3D on Ubuntu 15.04 (Vivid Vervet), Java 8 fixed
I've made tests on Debian 8.1 amd64
I use the installed version 5 from Your site.(on repository are 4.6)
1. With jre1.6.0_45 => GOOD
2. With jre1.7.0_79 => GOOD
3. With jre1.8.0_45 => Bad confirm bug
4. With jre1.8.0_60 => Bad confirm bug
So in java 7 it work but if You have other tests I'm available to test.
----------------------------------------
A computer program does what you tell it to do, not what you want it to do. Murphy's Law
When all else fails, read the instructions. Murphy's Law
If you don't like "AS IS", DIY. Dorin's law