Adam Bien's Weblog

If The Kindle Previewer Won't Start

Kindle Previewer is a Java application, which seems to require JDK 1.6 and does not run on JDK 1.7.

To fix the environment, open /Applications/Kindle and add JAVA_HOME pointing to your JDK 1.6 installation right after #!/bin/sh, e.g. export JAVA_HOME="/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"

NEW online workshop: WebStandards Igniter (online)

Airport MUC workshops: Java EE 7: Bootstrap, Effective, Architectures, Web, React and Angular, Testing and Microservices


A book about rethinking Java EE Patterns


Hi Adam,

if one has not yet updated to Apple Java Update 1.6.0_37 you can set the JDK that will be used with Java by reordering the installed JDKs.

Since the last Apple-Update, Java is missing. But there's still another elegant way:


This tool prints the Java-Home Location of the preferred JDK to stdout. So one can use it in scripts by executing:

export JAVA_HOME=`/usr/libexec/java_home`

There are some command line options with java_home, e.g.:

/usr/libexec/java_home -v1.6 -d32 -ai386

will print the JDK location that best fits the desired version = 1.6 with i386 architecture and 32bit.

So /usr/libexec/java_home is perfect for doing this job.

As with Java Apps packaged with Apple Java Packager Tool, a info.plist is created inside the .app directory. There you could also set the desired JDK version - Just set <key>JVMVersion</key> to 1.6 (NOT 1.6+)...


Posted by Robert on October 25, 2012 at 10:50 PM CEST #

I've just set up a new Mac and as such installed by default JDK 1.7 -- using the above I've managed to get my Kindle Previewer running right away.
Thanks so much!


Posted by Liviu Tudor on January 31, 2014 at 07:10 PM CET #

Thanks so much for this Adam. Just downloaded and ran the Kindle Previewer on my mac and began to get confused and irritated when it failed to launch. Luckily your solution worked for me. Cheers

Posted by Eric on February 21, 2014 at 05:19 PM CET #


Posted by Migs on March 27, 2014 at 04:12 AM CET #

Thanks so much for this information! I use Kindle Previewer to convert epub to mobi and never would have put together that it was a Java issue.

Posted by Dominic on July 12, 2014 at 03:40 PM CEST #

This solution worked beautifully! Thanks heaps!

Posted by Anthony Hortin on September 16, 2014 at 05:41 PM CEST #

I think I followed all of the instructions here correctly but unclear whether I've done it right.

Kindle Previewer still crashes every time I launch. I've never gotten anything to open...I used the command line you suggest above --here's a question that likely shows my ignorance...for "usr" in the command line was I supposed to substitute my user name on my Mac?

I'm running the latest Yosemite (which I updated to partly based on someone's comment that it solved their KP problem to do this)

Not sure what to do next...

Posted by Liza on November 06, 2014 at 10:09 PM CET #

I added the following step after Adam's to get the solution to work for me with Kindle Previewer v2.94. Prepend the string "${JAVA_HOME}/bin/" in front of lines 26 and 29. So these lines start like this:

java -d32 -XstartOnFirstThread...

After the change, both lines start like this instead:

${JAVA_HOME}/bin/java -d32 -XstartOnFirstThread...

If you have no idea where the v1.6 Java is located on your system, then instead of following Adam's instructions, run Robert's command:

/usr/libexec/java_home -v1.6 -d32 -ai386

Hope this helps, thanks Adam.

Posted by Anthony Yen on December 17, 2014 at 07:05 PM CET #

Same for me as Liza, except my OS is Mavericks. The KDP people gave me similar instructions (that don't work) and this link if I needed help.

I found Apple had instructions on abling Java 6, that didn't work either.

I can see the 1.6.0 Java folder, I tried to move the files manually. No luck. I'm stuck, I don't understand where line 26 and 29 are counted from Anthony Yen. Any ideas? Thanks

Posted by Ron on January 22, 2015 at 01:56 AM CET #

I had to add this into the 'Launcher' file too (After scouring the internet and faffing for HOURS!!!)

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6*)

Just under and in addition to the suggested addition above? I.e. after - (#!/bin/sh, e.g. export JAVA_HOME="/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home")

And it suddenly fired up first time ever.

Posted by Nick on August 11, 2015 at 05:47 PM CEST #


Posted by on August 24, 2015 at 01:00 PM CEST #

I have tried most of the above suggestions, but still can't get it to launch.

Posted by Matt on September 25, 2015 at 04:58 PM CEST #

I also have the Kindle Previewer issue on El Capitan. I have no idea what the previous comments mean other than it looks like /usr/libexec/java_home is entered in what? Command line? Previous windows user totally lost on mac. :)

Posted by David Seibold on October 23, 2015 at 04:48 AM CEST #

I've tried everything and I still can't get this to launch on El Capitan, even though I do have the 1.6.0.jdk folder.

Any other thoughts anyone?

Posted by C Support on November 02, 2015 at 05:44 PM CET #

I am using El Capitan and was able to get Kindle Previewer to work by combining both Adam and Liza's suggestions.

Part of my problem was that I was using the path for Java 1.8, since that is the latest version that I have installed. Finally, I searched for the path for 1.6 using the command suggested by Adam:

/usr/libexec/java_home -v1.6 -d32 -ai386

Then copied/pasted the exact path that was returned.

Thank you! :-)

Posted by Rosana Starr on December 27, 2015 at 04:22 AM CET #

worked perfectly! thanks nick!

Posted by paolo on April 28, 2016 at 09:14 PM CEST #


## Delete the ENTIRE content of the "Luncher" document and REPLACE it with this:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"

dir=`dirname "$0"`
cd "$dir"

for i in `ls ./lib`


# start the previewer
fileExtT=`echo $1 | awk -F. '{print $NF}'`
fileExt=`echo $fileExtT | tr '[:upper:]' '[:lower:]'`

if [ "$fileExt" == mobi -o "$fileExt" == azw3 -o "$fileExt" == epub -o "$fileExt" == opf -o "$fileExt" == html -o "$fileExt" == zip ]
# opens only the first book in command line. TODO: handle multiple books in command line
java -d32 -XstartOnFirstThread -Dfile.encoding=UTF-8 -cp "${classpath}" "$1"
exit 1
${JAVA_HOME}/bin/java -d32 -XstartOnFirstThread -Dfile.encoding=UTF-8 -cp "${classpath}"
exit 1

Posted by Vorgan on May 24, 2016 at 09:17 PM CEST #

Awesome. This fix my problem. Thanks for sharing this useful information.

Posted by James Taiwo on July 01, 2016 at 01:10 PM CEST #

Post a Comment:
  • HTML Syntax: NOT allowed
Online Workshops
...the last 150 posts
...the last 10 comments