SWT 3 and gcj

Simon Rutishauser simon.rutishauser@gmx.ch
Tue Oct 14 17:27:00 GMT 2003


I'll give it a run. Just need to fetch it...

Peschmä

Am Tue, 14 Oct 2003 01:02:06 -0400 schrieb Rutger Ovidius:
> Has anyone had success with SWT 3 and gcj?
> 
> Since SWT 2 has so many bugs, I would like to compile my application with
> SWT 3.  I am attempting this on windows.
> 
> Eclipse Milestone 4 was recently released. SWT 3 from Milestone 4 is what
> I am using. (www.eclipse.org)
> 
> With gcj 3.3.1, I get many verification problems when trying to compile
> from the SWT.jar file (.class files).  When compiling from the source
> .java files, I eventually succeed in building a libswt.a file, if I remove
> some of the source files from the CLASSPATH and compile them from outside
> of the CLASSPATH. (I'm still not sure why this is necessary)
> 
> With the thisiscool 3.4 build: (gcc version 3.4 20031006 (experimental)),
> I get
> less errors when compiling from .java source (only 2), but seemingly more
> fatal:
> 
> ./org/eclipse/swt/custom/StyledText.java:162: internal compiler error:
> tree check: expected class 'd', have 'x' (error_mark) in
> make_nested_class_name, at java/parse.y:3484
> 
> But, moving this file outside of the CLASSPATH and compiling it from there
> seems to work.
> 
> I use the build.sh from the thisiscool package for SWT building.
> 
> (gcj -fjni -c -o <all java files>, ar -rcs *.o libswt.a, ranlib libswt.a)
> 
> Once I create my libswt.a, I link my test app to it just as I do with
> SWT2. My SWT2 libswt.a works fine, but nothing I try with SWT3 will work. 
> Getting a simple Display fails.  (The swt-win32-3024.dll is in the same
> directory and is not the problem).
> 
> Exception in thread "main" java.lang.NullPointerException
>    at __GLOBAL__I__ZN4Main4mainEP6JArrayIPN4java4lang6StringEE
> (F:\testswt\Main.java:1)
> 
> When I compile with "javac" and "java" run it, it works just fine with
> SWT3. Please let me know if you have had success with SWT3 and gcj.
> Thanks.
> 
> ---
> 
> public class Main {
>  public static void main( String[] args ) {
>   Display display = new Display(  );
>   Shell shell = new Shell( display );
>   shell.setLayout( new FillLayout(  ) ); shell.open(  );
>   while ( !shell.isDisposed(  ) ) {
>    if ( !display.readAndDispatch(  ) ) {
>     display.sleep(  );
>    }
>    }
>   }
>  }
> }




More information about the Java mailing list