2010-07-20 5 views
0

J'essaie d'utiliser une bibliothèque JNI mais je n'arrive pas à localiser les fichiers .so sur ma machine ubuntu.en utilisant des bibliothèques JNI dans ubuntu

La raison pour laquelle je dois le trouver est parce que je soupçonne Im utilisant une version plus ancienne et aime à le remplacer par un plus récent.

C'est plus une question d'ubuntu que de jni.

Toute aide est appréciée.

Répondre

1

La réponse sera différente en fonction de la bibliothèque que vous cherchez.

Vous en trouverez dans/lib

autres dans/usr/lib

en fonction de ce que vous avez installé, vous pouvez également trouver .so est dans/usr/local/lib

et peut-être n'importe où ailleurs dans le système (voir la réponse de Duck ci-dessus pour un moyen de tous les trouver). Pour une bibliothèque spécifique installée à partir d'un package, par exemple le JNI .so installé par le package sun-java6-bin, vous devez utiliser dpkg pour rechercher la liste des packages et rechercher l'emplacement souhaité.

 
dpkg -L sun-java6-bin | grep '\.so' 

qui indique que la majeure partie de ce paquet est installé dans/usr/lib/jvm/java-6-* soleil.

Si vous n'êtes pas sûr de votre paquet java a été installé avec vous pouvez rechercher la liste des paquets installés avec:

 
dpkg -l | grep java 

J'espère que cela aide.

+0

thnx beaucoup, cela m'a aidé .. Je l'ai trouvé dans/usr/local/lib mais j'ai trouvé que c'était en utilisant la commande locate, j'ai dû utiliser updatedb d'abord! – Pradeep

1

find/-name "mylib.so" 2>/dev/null

Si le fichier est un lien symbolique, suivez le lien vers la lib réelle.

+0

salut, merci pour la réponse, pourriez-vous préciser ce que signifie cette commande? – Pradeep

+0

C'est la forme de base de la commande find. Fondamentalement commencer à chercher le fichier nommé "mylib.so" dans le répertoire racine et vérifier de manière récursive tous les répertoires dans le système de fichiers pour les fichiers de ce nom. Normalement, vous ne commenceriez pas à la racine, mais puisque vous n'aviez aucune idée de l'endroit où le fichier commençait, il vérifierait tout. Le 2>/dev/null redirige juste les messages d'erreur (écrits à stderr) à un seau de bits de système, c'est-à-dire nulle part. Cela vous évite d'avoir à voir un flou de messages disant "vous n'avez pas les permissions pour voir ce répertoire" que vous verriez si vous n'exécutez pas en tant que root. – Duck

+0

thnx pour votre patient réponse canard! – Pradeep

Questions connexes