Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    561

    Problema con le Java Native Interface

    Ho scritto questa classe:

    codice:
    public class GeoRef {
        public GeoRef() {
        }
        public native void decimals_to_latlon (double decimals, int degrees, int minutes, int seconds);
        
        static { 
        System.loadLibrary("datum_e_proiezioni"); 
        }
        
        public static void main(String[] args){
            int degrees=0; int minutes=0; int seconds=0;
            GeoRef g=new GeoRef();
            
            g.decimals_to_latlon(39.09120555,degrees,minutes,seconds);
            System.out.println("degrees="+degrees+"minutes= "+minutes+"seconds= "+seconds);
        }
    
    }

    Ottengo il seguente errore:"java.lang.UnsatisfiedLinkError: no datum_e_proiezioni in java.library.path
    "

    perchè?

    tulipan

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema con le Java Native Interface

    Originariamente inviato da tulipan
    perchè?
    Non lo so ... prima vediamo se hai fatto tutti i passi giusti:

    a) Hai compilato la classe?
    b) Hai generato il file di header .h tramite il tool javah?
    c) Hai implementato le funzioni native in un sorgente c/c++ seguendo le linee guida di JNI e rispettando i prototipi dichiarati nell'header?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    561
    dunque ho compilato la classe GeoRef.java ed ho generato il file GeoRef.class poi ho cercato di usare javah da prompt di comandi ma ottengo questo errore:

    error:cannot access GeoRef

    bad class file:.\GeoRef.class

    class file contains wrong class:it.nomeproject.GeoRef
    Please remove or make sure it appears in the correct subdirectory of the classpath.....

    sembra che la class non sia nel package giusto in realtà non faccio altro che complilare da prompt di comandi direttamente la classe presente nel progetto che è regolarmente situata nel package giusto!!

    tulipan

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da tulipan
    class file contains wrong class:it.nomeproject.GeoRef
    Quindi la tua classe GeoRef è nel package it.nomeproject? Allora innanzitutto:
    a) il file GeoRef.class deve stare sotto un path it/nomeproject
    b) In "classpath" ci deve essere la directory che contiene la directory "it"
    c) Devi invocare javah it.nomeproject.GeoRef
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.