[Biojava-dev] Biojava with Java 8

Terry Casstevens tmc46 at cornell.edu
Wed Jul 30 15:07:36 UTC 2014


Hi Andreas,

Thank you for your reply.  Looking at the github repository, it does
look like the last change to SimpleLocation will fix our problem.
Although, I don't think it's specific to Windows.  I think it's a
change in Java 8 (maybe with default methods on Interfaces).

Your Location Interface creates an static instance of SimpleLocation
which ends up calling a SimpleLocation constructor that uses
EMPTY_LOCS.  And EMPTY_LOCS, a static variable in SimpleLocation,
doesn't seem to be initialized at that time.   The change to use new
ArrayList<Location>() instead of EMPTY_LOCS gets around that.

Do you know when another release would be available?

Thank you,

Terry


On Tue, Jul 29, 2014 at 5:03 PM, Andreas Prlic <andreas at sdsc.edu> wrote:
> Hi Terry,
>
> The NoClassDefFoundError sounds a bit more like a configuration error, than
> a BioJava specific issue. Are you using the latest version of the source
> from github? One of our students here submitted a few patches recently that
> make the current trunk code work on Java 1.8 without problems (as well as on
> windows). Might be easiest to get a checkout from there.
>
> https://github.com/biojava/biojava
>
> Having said that, there was a lot of change in the code since the last
> release and we should probably think about preparing another release soon.
>
> Andreas
>
>
>
> On Tue, Jul 29, 2014 at 11:01 AM, Terry Casstevens <tmc46 at cornell.edu>
> wrote:
>>
>> Dear Spencer,
>>
>> I would very much appreciate your help with this.  I think it will
>> effect your other users also.
>>
>> I am the software lead of the Buckler Lab at Cornell University, and
>> we use the biojava library in our software.
>>
>> I'm hoping to move to your latest released jars, but I don't think
>> this is specific to that version.
>> biojava3-alignment-3.0.8.jar
>> biojava3-phylo-3.0.8.jar
>> biojava3-core-3.0.8.jar
>>
>> We have everything working when compiling and running our code with Java
>> 7.
>>
>> But when running with Java 8 (compiling with Java 7 or Java 8), we are
>> getting NoClassDefFoundError.
>>
>>
>> This will show you the problem.  Compile this with Java 7, and run it
>> under Java 7 and Java 8.  You will see that it works in Java 7 and not
>> in Java 8.
>>
>> public static void main(String[] args) {
>>         SimpleLocation location = new SimpleLocation(1, 7);
>> }
>>
>>
>> I believe your problem is in
>> org.biojava3.core.sequence.location.template.Location.  This line is
>> causing the problem in Java 8.
>>
>> public static final Location EMPTY =
>>             new SimpleLocation(Integer.MIN_VALUE, Integer.MAX_VALUE,
>> Strand.UNDEFINED);
>>
>>
>>
>> Best,
>>
>> Terry
>> _______________________________________________
>> biojava-dev mailing list
>> biojava-dev at mailman.open-bio.org
>> http://mailman.open-bio.org/mailman/listinfo/biojava-dev
>
>
>
>


More information about the biojava-dev mailing list