Seguendo un esempio della documentazione Apple ho realizzato una classe che richiama un metodo nativo che permette ad un programma Java di chiamare NSOpenPanel e NSSavePanel del framework Cocoa.

Se eseguo il programma con java 1.5 funziona perfettamente, se passo a java 6 invece da questo errore:
codice:
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /Users/alessandro/Documents/workspace/jCodeCollector/src/libSheetDelegate.jnilib:
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1739)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at com.javastaff.jsheet.JSheetDelegate.<clinit>(JSheetDelegate.java:29)
at com.javastaff.alessandro.jcodecollector.gui.BackupManager.restoreDatabase(BackupManager.java:119)
at com.javastaff.alessandro.jcodecollector.gui.JCodeCollectorGUI$30.actionPerformed(JCodeCollectorGUI.java:828)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
...
Questa è la riga incriminata:
codice:
JSheetDelegate.showSaveSheet(mainFrame, new SaveSheetListener() {
public void saveSheetFinished(SheetEvent e) {
try {
XMLManager.backupDatabase(new File(e.getFilename()));
} catch (IOException ex) {
JOptionPane.showMessageDialog(mainFrame, "<html>Cannot backup the database.
The file cannot be saved because an I/O error occurred</html>");
}
}
public void sheetCancelled() {
}
});
Qualcuno sa spiegarmi perchè?