This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Mauve - bacterial genome viewer?

HI,

I'm trying to use MAUVE to visualize mitogenomes,

ending up in java error (below), suggestions please.

**MAUVE**
JAVA_CMD=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
JAVA_ARGS="-Xms200M -Xmx500M"

**Variables in .zshrc**
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"
export PATH=$JAVA_HOME/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/jvm/java-11-openjdk-amd64/lib/
JAVA_CMD=/usr/lib/jvm/java-11-openjdk-amd64/bin/

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "."
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:638)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at org.gel.mauve.gui.Mauve.hasRequiredJVM(Unknown Source)
at org.gel.mauve.gui.Mauve.init(Unknown Source)
at org.gel.mauve.gui.Mauve$2.run(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
genome software

2 answers

java.lang.Integer.parseInt(Integer.java:638)

this error occurs when the sofware try to parse an integer...

Mauve.hasRequiredJVM(Unknown Source)

while trying to parse the java version

the source is here: https://svn.code.sf.net/p/mauve/code/mauve/trunk/src/org/gel/mauve/gui/Mauve.java

private boolean hasRequiredJVM () {
    String jvm_version = System.getProperty ("java.version");
    int minor_version = Integer.parseInt (jvm_version.substring (2, 3));
    if (jvm_version.charAt (0) == '1') {
        if (minor_version < 5) {
            MyConsole
                    .err ()
                    .println (
                            "Sorry, Mauve requires at least Java version 1.5 to operate correctly");
            return false;
        }
    }
    return true;
}

so this tool was not designed for a java version >= 10.

You can always try to fool java by adding a "java.version" property (https://stackoverflow.com/a/5189966/58082)

-Djava.version=1.5

to the java command line (not tested)

Or you can try to re compile from source, and set

boolean hasRequiredJVM() { return true;}

That's true works only with Java 8.

Log in to answer this question.