Has Eclipse (outside of Tomcat) been configured to emit .class files in
a certain format? I'm guessing this hasn't been done for 'ant', so maybe
they need to match each other.
that was one of my guesses, but apart from the compliance level i dont
know of any-
This happens as well under tomcat 5.5.
Changing the ANT build to use the same JDT compiler as eclipse did not
change the problem.
Using javap I checked both compiled versions of the classes and they do
have the same major version.
Really? Hmm. Could you double-check that and post what you get?
It's possible that there's a bug in the compiler that can't read some
particular thing in the class file.
please find javap - verbose output attached. major and minor versions
are the same.
there are differences though. Eclipse sems to include a SourceFile
reference plus Linenumber and LocalVariable Tables.
I wouldn't know how to trigger that in ant though..
public class de.unitb.i18n.Localizer extends java.lang.Object{
public static java.lang.String BASE_NAME;
static {};
Code:
0: ldc #18; //String LocalizedStrings
2: putstatic #20; //Field BASE_NAME:Ljava/lang/String;
5: new #22; //class java/util/HashMap
8: dup
9: invokespecial #24; //Method java/util/HashMap."<init>":()V
12: putstatic #27; //Field localizers:Ljava/util/HashMap;
15: return
public static synchronized de.unitb.i18n.Localizer
getInstance(java.lang.String);
Code:
0: aload_0
1: invokestatic #31; //Method
java/util/Locale.getDefault:()Ljava/util/Locale;
4: invokestatic #37; //Method
getInstance:(Ljava/lang/String;Ljava/util/Locale;)Lde/unitb/i18n/Localizer;
7: areturn
public static synchronized de.unitb.i18n.Localizer
getInstance(java.lang.String, java.util.Locale);
Code:
0: aload_1
1: ifnonnull 14
4: new #40; //class java/lang/IllegalArgumentException
7: dup
8: ldc #42; //String Do not pass empty locale. Call
getInstance(packageName) for default
10: invokespecial #44; //Method
java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
13: athrow
14: aload_0
15: ifnull 27
18: ldc #47; //String
20: aload_0
21: invokevirtual #49; //Method
java/lang/String.equals:(Ljava/lang/Object;)Z
24: ifeq 37
27: new #40; //class java/lang/IllegalArgumentException
30: dup
31: ldc #55; //String Do not pass empty package name.
33: invokespecial #44; //Method
java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
36: athrow
37: new #57; //class java/lang/StringBuilder
40: dup
41: aload_0
42: invokespecial #59; //Method
java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
45: ldc #60; //String .
47: invokevirtual #62; //Method
java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
50: aload_1
51: invokevirtual #66; //Method
java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
54: astore_2
55: getstatic #27; //Field localizers:Ljava/util/HashMap;
58: aload_2
59: invokevirtual #69; //Method
java/lang/StringBuilder.toString:()Ljava/lang/String;
62: invokevirtual #73; //Method
java/util/HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
65: checkcast #1; //class de/unitb/i18n/Localizer
68: astore_3
69: aload_3
70: ifnonnull 95
73: new #1; //class de/unitb/i18n/Localizer
76: dup
77: aload_0
78: aload_1
79: invokespecial #77; //Method
"<init>":(Ljava/lang/String;Ljava/util/Locale;)V
82: astore_3
83: getstatic #27; //Field localizers:Ljava/util/HashMap;
86: aload_2
87: invokevirtual #69; //Method
java/lang/StringBuilder.toString:()Ljava/lang/String;
90: aload_3
91: invokevirtual #80; //Method
java/util/HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
94: pop
95: aload_3
96: areturn
public java.lang.String getString(java.lang.String);
Code:
0: aload_1
1: ifnull 13
4: ldc #47; //String
6: aload_1
7: invokevirtual #49; //Method
java/lang/String.equals:(Ljava/lang/Object;)Z
10: ifeq 23
13: new #40; //class java/lang/IllegalArgumentException
16: dup
17: ldc #102; //String Do not pass an empty key
19: invokespecial #44; //Method
java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
22: athrow
23: aload_1
24: astore_2
25: aload_0
26: getfield #92; //Field bundle:Ljava/util/ResourceBundle;
29: aload_1
30: invokevirtual #104; //Method
java/util/ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
33: astore_2
34: goto 38
37: pop
38: aload_2
39: areturn
Exception table:
from to target type
25 34 37 Class java/util/MissingResourceException
public java.lang.String getString(java.lang.String, java.lang.Object[]);
Code:
0: aload_0
1: aload_1
2: invokevirtual #109; //Method
getString:(Ljava/lang/String;)Ljava/lang/String;
5: astore_3
6: aload_3
7: ifnull 29
10: ldc #47; //String
12: aload_3
13: invokevirtual #49; //Method
java/lang/String.equals:(Ljava/lang/Object;)Z
16: ifne 29
19: aload_0
20: getfield #98; //Field locale:Ljava/util/Locale;
23: aload_3
24: aload_2
25: invokestatic #110; //Method
java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
28: areturn
29: aload_1
30: areturn
public java.util.Locale getLocale();
Code:
0: aload_0
1: getfield #98; //Field locale:Ljava/util/Locale;
4: areturn
}
Compiled from "Localizer.java"
public class de.unitb.i18n.Localizer extends java.lang.Object{
public static java.lang.String BASE_NAME;
static {};
Code:
0: ldc #18; //String LocalizedStrings
2: putstatic #20; //Field BASE_NAME:Ljava/lang/String;
5: new #22; //class java/util/HashMap
8: dup
9: invokespecial #24; //Method java/util/HashMap."<init>":()V
12: putstatic #27; //Field localizers:Ljava/util/HashMap;
15: return
public static synchronized de.unitb.i18n.Localizer
getInstance(java.lang.String);
Code:
0: aload_0
1: invokestatic #33; //Method
java/util/Locale.getDefault:()Ljava/util/Locale;
4: invokestatic #39; //Method
getInstance:(Ljava/lang/String;Ljava/util/Locale;)Lde/unitb/i18n/Localizer;
7: areturn
public static synchronized de.unitb.i18n.Localizer
getInstance(java.lang.String, java.util.Locale);
Code:
0: aload_1
1: ifnonnull 14
4: new #43; //class java/lang/IllegalArgumentException
7: dup
8: ldc #45; //String Do not pass empty locale. Call
getInstance(packageName) for default
10: invokespecial #47; //Method
java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
13: athrow
14: aload_0
15: ifnull 27
18: ldc #50; //String
20: aload_0
21: invokevirtual #52; //Method
java/lang/String.equals:(Ljava/lang/Object;)Z
24: ifeq 37
27: new #43; //class java/lang/IllegalArgumentException
30: dup
31: ldc #58; //String Do not pass empty package name.
33: invokespecial #47; //Method
java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
36: athrow
37: new #60; //class java/lang/StringBuilder
40: dup
41: aload_0
42: invokespecial #62; //Method
java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
45: ldc #63; //String .
47: invokevirtual #65; //Method
java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
50: aload_1
51: invokevirtual #69; //Method
java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
54: astore_2
55: getstatic #27; //Field localizers:Ljava/util/HashMap;
58: aload_2
59: invokevirtual #72; //Method
java/lang/StringBuilder.toString:()Ljava/lang/String;
62: invokevirtual #76; //Method
java/util/HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
65: checkcast #1; //class de/unitb/i18n/Localizer
68: astore_3
69: aload_3
70: ifnonnull 95
73: new #1; //class de/unitb/i18n/Localizer
76: dup
77: aload_0
78: aload_1
79: invokespecial #80; //Method
"<init>":(Ljava/lang/String;Ljava/util/Locale;)V
82: astore_3
83: getstatic #27; //Field localizers:Ljava/util/HashMap;
86: aload_2
87: invokevirtual #72; //Method
java/lang/StringBuilder.toString:()Ljava/lang/String;
90: aload_3
91: invokevirtual #83; //Method
java/util/HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
94: pop
95: aload_3
96: areturn
public java.lang.String getString(java.lang.String);
Code:
0: aload_1
1: ifnull 13
4: ldc #50; //String
6: aload_1
7: invokevirtual #52; //Method
java/lang/String.equals:(Ljava/lang/Object;)Z
10: ifeq 23
13: new #43; //class java/lang/IllegalArgumentException
16: dup
17: ldc #110; //String Do not pass an empty key
19: invokespecial #47; //Method
java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
22: athrow
23: aload_1
24: astore_2
25: aload_0
26: getfield #98; //Field bundle:Ljava/util/ResourceBundle;
29: aload_1
30: invokevirtual #112; //Method
java/util/ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
33: astore_2
34: goto 38
37: astore_3
38: aload_2
39: areturn
Exception table:
from to target type
25 34 37 Class java/util/MissingResourceException
public java.lang.String getString(java.lang.String, java.lang.Object[]);
Code:
0: aload_0
1: aload_1
2: invokevirtual #119; //Method
getString:(Ljava/lang/String;)Ljava/lang/String;
5: astore_3
6: aload_3
7: ifnull 29
10: ldc #50; //String
12: aload_3
13: invokevirtual #52; //Method
java/lang/String.equals:(Ljava/lang/Object;)Z
16: ifne 29
19: aload_0
20: getfield #106; //Field locale:Ljava/util/Locale;
23: aload_3
24: aload_2
25: invokestatic #120; //Method
java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
28: areturn
29: aload_1
30: areturn
public java.util.Locale getLocale();
Code:
0: aload_0
1: getfield #106; //Field locale:Ljava/util/Locale;
4: areturn
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]