• Running Blurb’s BookSmart Under Ubuntu 13.10 Linux

    blurbEach year my wife and I make a photobook for the previous year. We started doing this around four years ago. For the first album, we used Photobox, but I have found their online tool a little clunky to use. A friend of ours introduced us to Blurb – a company which provides an offline tool to create photo books in – which then uploads the book structure and images, once the process of creating the book is complete. This is a great way to make the book as it doesn’t require a constant Internet connection. In general, we have been very happy with the quality of the books and the speed of printing and delivery.

    The main problem with the Booksmart application is that, despite being a Java app, there is no download available for Linux. There are a number of guides which aid in installing and running the application – I have used the help page offered on the Ubuntu forums, but have also had to make some changes to the process, which I will detail here.

    Download DMG and mount disk image

    Firstly, download the latest Mac (not Windows) version of BookSmart. The version I have used most recently is BookSmart 3.4.4. You will have to log in to Blurb in order to gain access to the downloads section.

    Now install dmg2img to convert the DMG file into something that Linux can mount. Then, convert the file using:

    dmg2img BookSmart_3.4.4.dmg


    sudo mkdir /macbooksmart
    sudo mount -t hfsplus -o loop BookSmart_3.4.4.img /macbooksmart

    Install files

    I have a folder in my home directory called Applications into which I place applications such as this.

    mkdir ~/Applications/booksmart/
    sudo cp -r /macbooksmart/BookSmart.app/Contents/Resources/Java/lib/ ~/Applications/booksmart/
    sudo cp -r /macbooksmart/BookSmart.app/Contents/Resources/Java/resources/ ~/Applications/booksmart/ 
    sudo cp /macbooksmart/BookSmart.app/Contents/Resources/booksmart.icns ~/Applications/booksmart/

    The 3.4.4 Mac version of BookSmart will only run under Oracle Java 1.6. If you do not run it under 1.6 (or even if you run it under OpenJDK 1.6), you will get an exception in the Terminal – e.g. under Java 1.7:
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/sun/java/swing/SwingUtilities2

    In order to get BookSmart running, it is essential to install Java 1.6, which can be downloaded from Oracle. You may have to jump through a few hoops to get the install working as Oracle are not keen on giving you an older version to Java.

    Once the Java 1.6 install is complete, the executables should be in:

    Create startup script

    Create a script that can start BookSmart:

    echo '#! /bin/sh
    cd ~/Applications/booksmart
    # Build classpath with all jars in the lib directory
    for jar in lib/*.jar
    /opt/java/32/jdk1.6.0_45/bin/java -Xincgc -ea -Xms256m -Xmx1024m -classpath $classpath com.blurb.booksmart.application.BookSmart
    exit $?
    ' > ~/Applications/booksmart/booksmart.sh
    sudo chmod a+x ~/Applications/booksmart/booksmart.sh

Leave a Reply

Your email address will not be published. Required fields are marked *

Are you human: *