# Eclipse source not found



## Giftstachel (6. Dez 2007)

moinmoin.

mein neues problem betrifft mal wieder nlink, welches ich als externe bibliothek importiere

fehlermeldung:
The Source attachment does not contain the source for the file Native.class


```
// Compiled from Native.java (version 1.5 : 49.0, super bit)
class nlink.win32.Native {
  
  // Method descriptor #29 ()V
  // Stack: 1, Locals: 1
  Native();
    0  aload_0 [this]
    1  invokespecial java.lang.Object() [1]
    4  return
      Line numbers:
        [pc: 0, line: 9]
      Local variable table:
        [pc: 0, pc: 5] local: this index: 0 type: nlink.win32.Native
  
  // Method descriptor #36 (Ljava/lang/String;)I
  static native int loadLibrary(java.lang.String arg0);
  
  // Method descriptor #38 ()I
  static native int getLastError();
  
  // Method descriptor #40 (I)Ljava/lang/String;
  static native java.lang.String formatErrorMessage(int arg0);
  
  // Method descriptor #42 (I[Ljava/lang/Object;[ILjava/lang/Class;I)Ljava/lang/Object;
  static native java.lang.Object invoke(int arg0, java.lang.Object[] arg1, int[] arg2, java.lang.Class arg3, int arg4);
  
  // Method descriptor #44 (II)I
  static native int getProcAddress2(int arg0, int arg1);
  
  // Method descriptor #46 (ILjava/lang/String;)I
  static native int getProcAddress(int arg0, java.lang.String arg1);
  
  // Method descriptor #29 ()V
  // Stack: 4, Locals: 6
  static void loadNativeLibrary();
      0  ldc <String "nlink"> [2]
      2  invokestatic java.lang.System.loadLibrary(java.lang.String) : void [3]
      5  return
      6  astore_0
      7  ldc_w <Class nlink.win32.Native> [5]
     10  invokevirtual java.lang.Class.getClassLoader() : java.lang.ClassLoader [6]
     13  ldc <String "nlink/Const.class"> [7]
     15  invokevirtual java.lang.ClassLoader.getResource(java.lang.String) : java.net.URL [8]
     18  astore_0 [res]
     19  aload_0 [res]
     20  invokevirtual java.net.URL.toExternalForm() : java.lang.String [9]
     23  astore_1 [url]
     24  aload_1 [url]
     25  ldc <String "jar://"> [10]
     27  invokevirtual java.lang.String.startsWith(java.lang.String) : boolean [11]
     30  ifeq 97
     33  aload_1 [url]
     34  bipush 33
     36  invokevirtual java.lang.String.lastIndexOf(int) : int [12]
     39  istore_2 [idx]
     40  aload_1 [url]
     41  bipush 6
     43  iload_2 [idx]
     44  invokevirtual java.lang.String.substring(int, int) : java.lang.String [13]
     47  astore_3 [filePortion]
     48  aload_3 [filePortion]
     49  ldc <String "file://"> [14]
     51  invokevirtual java.lang.String.startsWith(java.lang.String) : boolean [11]
     54  ifeq 97
     57  new java.io.File [15]
     60  dup
     61  aload_3 [filePortion]
     62  bipush 7
     64  invokevirtual java.lang.String.substring(int) : java.lang.String [16]
     67  invokespecial java.io.File(java.lang.String) [17]
     70  astore 4 [jarFile]
     72  new java.io.File [15]
     75  dup
     76  aload 4 [jarFile]
     78  invokevirtual java.io.File.getParentFile() : java.io.File [18]
     81  ldc <String "nlink.dll"> [19]
     83  invokespecial java.io.File(java.io.File, java.lang.String) [20]
     86  astore 5 [dllFile]
     88  aload 5 [dllFile]
     90  invokevirtual java.io.File.getPath() : java.lang.String [21]
     93  invokestatic java.lang.System.load(java.lang.String) : void [22]
     96  return
     97  new java.lang.UnsatisfiedLinkError [23]
    100  dup
    101  ldc <String "Unable to load nlink.dll"> [24]
    103  invokespecial java.lang.UnsatisfiedLinkError(java.lang.String) [25]
    106  athrow
      Exception Table:
        [pc: 0, pc: 5] -> 6 when : java.lang.Throwable
      Line numbers:
        [pc: 0, line: 33]
        [pc: 5, line: 34]
        [pc: 6, line: 35]
        [pc: 7, line: 40]
        [pc: 19, line: 41]
        [pc: 24, line: 42]
        [pc: 33, line: 43]
        [pc: 40, line: 44]
        [pc: 48, line: 45]
        [pc: 57, line: 46]
        [pc: 72, line: 47]
        [pc: 88, line: 48]
        [pc: 96, line: 49]
        [pc: 97, line: 53]
      Local variable table:
        [pc: 7, pc: 7] local: t index: 0 type: java.lang.Throwable
        [pc: 72, pc: 97] local: jarFile index: 4 type: java.io.File
        [pc: 88, pc: 97] local: dllFile index: 5 type: java.io.File
        [pc: 40, pc: 97] local: idx index: 2 type: int
        [pc: 48, pc: 97] local: filePortion index: 3 type: java.lang.String
        [pc: 19, pc: 107] local: res index: 0 type: java.net.URL
        [pc: 24, pc: 107] local: url index: 1 type: java.lang.String
  
  // Method descriptor #29 ()V
  // Stack: 0, Locals: 0
  static {};
    0  invokestatic nlink.win32.Native.loadNativeLibrary() : void [26]
    3  return
      Line numbers:
        [pc: 0, line: 26]
        [pc: 3, line: 27]
}
```

das ganze wird aufgerufen über:


```
import nlink.win32.*;
import nlink.impl.*;

public class GetDataFromInterface 
{
	@DllClass
	public interface InitTransToDll 
	{
	    @DllMethod
	    int InitTrans(int portnr, int intern, int irgendwas, int irgendwasanderes );    
	}
	@DllClass
	public interface Write 
	{
	    @DllMethod
	    int Write(int portnr, int intern, int irgendwas, int irgendwasanderes );    
	}
	@DllClass
	public interface Read 
	{
	    @DllMethod
	    int Read(int portnr, int intern, int irgendwas, int irgendwasanderes );    
	}
	@DllClass
	public interface Exit 
	{
	    @DllMethod
	    int Exit(int portnr, int intern, int irgendwas, int irgendwasanderes );    
	}
	
//	public class Test {
	    public void init() 
	    {
                //noch nicht ganz fertig 
	        InitTransToDll init = NLink.create(InitTransToDll.class);
	        System.out.println(init.InitTrans(29, 0 ,0,51));
	        Write write = NLink.create(Write.class);
	        System.out.println(init.InitTrans(29, 0 ,0,51));
	        Read read = NLink.create(Read.class);
	        System.out.println(init.InitTrans(29, 0 ,0,51));
	        Exit exit = NLink.create(Exit.class);
	        System.out.println(init.InitTrans(29, 0 ,0,51));

	    }    
}
```


nlink ist jedoch richtig eingebunden, da ich bei

```
import nlink.win32.*;
import nlink.impl.*;
```

keine fehlermeldung bekomme.
(eingefügt über projekt -- properties -- libraries -- Add External Jars)
angeblich ist die bibliothek in der re stable.
auch habe ich versucht, die entsprechenden klassen manuell in alle workpath's zu kopieren. leider ohne erfolg. also das kopieren schon^^, aber er findet die class noch immer nicht.

gibts da bei eclipse irgendwelche bestimmten konventionen, die ich beachten muss?


----------



## Giftstachel (6. Dez 2007)

eclipse v.3.3.1.1


----------



## Wildcard (6. Dez 2007)

Im Package Explorer auf die jar rechtsklicken -> Properties -> Java Source Attachment


----------



## Giftstachel (6. Dez 2007)

Besten Dank, hat zum Teil geholfen... jetzt sind es nur noch 2 klassen, die er in der bibliothek als fehlend angibt, und nicht mehr 4


----------



## Wildcard (6. Dez 2007)

Sind sie denn im source attachment enthalten?  :roll:


----------



## Giftstachel (6. Dez 2007)

wie es aussieht, sidn die im jar-file nur zum teil implementiert... wenn man den zip-ordner nimmt, sieht es so aus, als würde es funzen.

danke nochmal für den tip, der ist gold wert. 

öhm... wo ist denn dieser häkchen-button^^
 ---((closed))---


----------

