[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Next question for help in Java packaging: beast-mcmc



On Wed, Feb 16, 2011 at 10:59 PM, Andreas Tille <andreas@an3as.eu> wrote:
> when dealing with phylogenie related programs I found several Java based
> programs up for packaging.  I've got FigTree close to ready - just one
> JAR (iText PDF library) is up for isolation of binary JAR into separate
> package (will be topic of another mail soonish).  For the package
> beast-mcmc[1] I worked hard to get all just packaged stuff out but several
> remained.  Unfortunately this program is a bit more complex so I need
> another helping hand.  For FigTree (my package source is available at [2]
> including the needed java libraries which are just in Debian new queue)
> I used
>
>     dh $@ --with javahelper
>
> with debian/figtree.manifest which was determining the CLASSPATH for the
> executable jar.  I considered this way as quite useful and would like to
> try it for beast-mcmc as well (even if it is no real request - any other
> way would be welcome for sure).  The problem is that the beast-mcmc
> package contains more than one package and I'm afraid I did not
> correctly interpreted the debian/manifest syntax for this case.  For
> those who would be kind enough to have a look I uploaded the source to
>
>   http://people.debian.org/~tille/packages/beast-mcmc-help-wanted/
>
> (it's also in SVN[3]).  To build the package you will need all debs
> from [2] (the figtree classes are used here as well - that's the reason
> whe I moved the figtree jar to /usr/share/java).  The package builds
> fine - however, the binary finally fails because of an obviously wrong
> set CLASSPATH.  I tried hard but failed to approch this and I even tried
> to patch the small wrapper scripts.  For the GUI I always get:
>
> $ beauti
> Exception in thread "main" java.lang.NoClassDefFoundError: jam/framework/MultiDocApplication
>        at java.lang.ClassLoader.defineClass1(Native Method)
>        at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
>        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>        at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
>        at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> Caused by: java.lang.ClassNotFoundException: jam.framework.MultiDocApplication
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>        ... 11 more
> Could not find the main class: dr.app.beauti.BeautiApp. Program will exit.

  This could mean that the version of jam in NEW was built without
support for one of its components (this can happen sometimes with
complex ant files), or that these components were split somehow. Where
can I get the package containing the jam.jar file ?

  Ideally, you can just compare the output of zipinfo on both the
jam.jar file provided with the package and that found in the debian
package, and that will tell you what is missing...

  Cheers,

      Vincent


Reply to: