Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/10/2008, à 16:29

bobsinglar

bash: ./arq-extra.jar: Permission non accordée

Bonjour,

J'essaye d'exécuter un programme java (utilitaire en ligne de commande qui génère des dictionnaires de propriétés RDF...) fourni avec la librairie HP Jena.

Ligne de lancement :

  java -cp ./*.jar jena.schemagen -i http://xmlns.com/foaf/0.1/ --ontology

La réponse est :

Exception in thread "main" java.lang.NoClassDefFoundError: //arq-extra/jar

A priori, le répertoire courant contient tous les .jar requis. Y compris la lib arq-extra.jar contenant la classe qui fait défaut. Mais pour être sûr, je le précise dans le classpath :

java -cp ./*.jar;./arq-extra.jar jena.schemagen -i http://xmlns.com/foaf/0.1/ --ontology

La réponse est alors :

Exception in thread "main" java.lang.NoClassDefFoundError: //arq-extra/jar
bash: ./arq-extra.jar: Permission non accordée

Pourtant tous les .jar sont lisibles/éditables par l'utilisateur courant. Et si j'exécute les mêmes lignes avec un sudo, le résultat est le même. Très étonnant.
Je remarque qu'il s'agit bien d'une erreur bash, et non Java (enfin, l'erreur bash entrainant l'impossibilité pour java de trouver la classe).

J'ai aussi tenté de décompresser/recompresser le jar. Rien.

Qu'en pensez-vous ?

Merci

bob

#2 Le 24/10/2008, à 16:34

bobsinglar

Re : bash: ./arq-extra.jar: Permission non accordée

Si je rend arq-extra.jar exécutable, le massage devient :

Exception in thread "main" java.lang.NoClassDefFoundError: //arq-extra/jar
Failed to load Main-Class manifest attribute from
/home/pcauquil/.java_libraries/jena/arq-extra.jar

Par ailleurs, quelle est cette syntaxe "//arq-extra/har" ? Bizarre pour une classe !

May die

#3 Le 24/10/2008, à 16:43

bobsinglar

Re : bash: ./arq-extra.jar: Permission non accordée

J'ai mélangé plusieurs choses :

Ce n'est pas un problème bash, mais bien Java.

Il faut s'en tenir à

 java -cp ./*.jar jena.schemagen -i http://xmlns.com/foaf/0.1/ --ontology

et

Exception in thread "main" java.lang.NoClassDefFoundError: //arq-extra/jar

Ca reste un mystère.

#4 Le 29/10/2008, à 12:03

bobsinglar

Re : bash: ./arq-extra.jar: Permission non accordée

J'ai trouvé une demi-réponse :

Si je déclare le Classpath dans le .bashrc avec la liste de tous les jar nécessaires, la commande suivante fonctionne bien :

 java jena.schemagen -i http://xmlns.com/foaf/0.1/ --ontology

Sans préciser le classpath dans la commande donc.

Par contre, si le Classpath n'est pas défini au niveau du système et que je le déclare à la volée avec l'option "-cp", comme ceci :

 java -cp /dossier_des_jar/*.jar jena.schemagen -i http://xmlns.com/foaf/0.1/ --ontology

L'une des classes (contenue dans ce répertoire) n'est pas trouvée. Les autres sont trouvées !


Je ne comprends absolument pas quelle est la différence entre le fichier jar incriminé et les autres sad