<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I've been bit with this many times. I'm fixing a problem w/in BibleDesktop regarding inheritance via interfaces that only surfaced because I recompiled using Java 5. Turns out it is not a runtime issue, because Java 6 improvements "do the right thing".<div><br></div><div>This is addressed with Java 7. You can tell javac that it has to use a particular runtime (by providing rt.jar) to pick the method that the jar has.<div><br></div><div>In Eclipse, you can create launchers and pick the execution environment. Not sure how to get it to do day-to-day compilation to use the proper compile environment other than to use that version of Java.</div><div><br></div><div>It becomes especially tricky when JSword development is Java 5, STEP is Java 6 and your local JDK is Java 7.</div><div><br></div><div>I'm still exploring to see what I can do to make it better.</div><div><br></div><div>All this is making me want to upgrade JSword development to Java 6 soon after the release. I had to go through hoops to get Java 5 on OSX Mountain Lion.</div><div><br></div><div>-- DM</div><div><br><div><div>On Mar 8, 2013, at 10:06 AM, Chris Burrell &lt;<a href="mailto:chris@burrell.me.uk">chris@burrell.me.uk</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi DM<div><br></div><div style="">One of the issues with cross-compiling, is that it does the cross-compiling in terms of the language structures. It however bases everything on the assumption that the JRE provides the various classes, methods, etc.</div>
<div style=""><br></div><div style="">I've hit that several times on STEP, where I've targeted a java 7 method by without realising.</div><div style=""><br></div><div style="">Chris</div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On 8 March 2013 14:38, DM Smith <span dir="ltr">&lt;<a href="mailto:dmsmith@crosswire.org" target="_blank">dmsmith@crosswire.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
When compiling for source="1.5" I've been seeing a message that bootclasspath has not been set.<br>
<br>
In researching this found out some interesting things.<br>
<br>
For a while now you could compile for a prior version of Java. So, for many years we used Java 5 or 6 to compile for Java 1.4 and Java 6 or 7 to compile for Java 5.<br>
<br>
I've not seen any problems with this. But it can create runtime exceptions or changes in behavior.<br>
<br>
Here is an example of the problem:<br>
Let's say we're targeting Java 6 but using Java 7 to compile and Java 7 has an overloaded method not present in 6.<br>
<br>
Java 6:<br>
interface foo {<br>
&nbsp; &nbsp; &nbsp; &nbsp; boolean isValid(int x);<br>
}<br>
<br>
Java 7:<br>
interface foo {<br>
&nbsp; &nbsp; &nbsp; &nbsp; boolean isValid(int x);<br>
&nbsp; &nbsp; &nbsp; &nbsp; boolean isValid(long x);<br>
}<br>
<br>
The Java 7 compiler resolving a call to isValid(x) only has one choice in Java 6, but two in Java 7. If the compiler picks the one that is new, then the code won't run using a Java 6 jre.<br>
<br>
The solution<br>
* use at the same level as the lowest allowed runtime<br>
&nbsp;or<br>
* supply the rt.jar (classes.jar on the mac) matching the lowest allowed runtime as the argument for the bootclasspath.<br>
<br>
We need to do this both in the ant and maven builds. Currently, we require Java 5.<br>
<br>
In Him,<br>
&nbsp; &nbsp; &nbsp; &nbsp; DM<br>
<br>
<br>
_______________________________________________<br>
jsword-devel mailing list<br>
<a href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/jsword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>
</blockquote></div><br></div>
_______________________________________________<br>jsword-devel mailing list<br><a href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>http://www.crosswire.org/mailman/listinfo/jsword-devel<br></blockquote></div><br></div></div></body></html>