1
votes

Impossible d'importer org.apache.jena.rdf.model - le package n'existe pas

J'essaie de me familiariser avec les bases de jena, mais lorsque j'importe le paquet avec

export JENA_HOME=~/api/apache-jena-3.10.0
export PATH=$PATH:$JENA_HOME/bin

et que je compile avec

javac -cp "~/api/apache-jena-3.10.0/lib/*:." Foo.java

J'obtiens juste l'erreur sur la ligne d'importation que le package n'existe pas.

J'ai vérifié que le dossier est là où il devrait être, il est fraîchement installé, j'ai exporté le chemin avec p>

import org.apache.jena.rdf.model.*; 

comme suggéré par la page d'accueil de jena, a confirmé qu'il était installé avec "sparql --version", et testé que "cd $ JENA_HOME" fonctionne comme prévu. Je ne trouve pas non plus de message avec le même problème.

J'apprécierais beaucoup de l'aide!


0 commentaires

3 Réponses :


1
votes

Exportez le chemin de la variable JENA_HOME sous

export JENA_HOME=~/api/apache-jena-3.10.0/lib/*


4 commentaires

Essayez d'exécuter avec ce javac -cp "~ / api / apache-jena-3.10.0 / lib / *" Foo.java


Vous ne pouvez pas mettre ~ à l'intérieur de "" et le développer. Et vous ne voulez pas que le "*" se développe. Essayez "$ HOME / api / apache-jena-3.10.0 / lib / *" ou ~ / api / apache-jena-3.10.0 / lib / \ *


Enfin, il compile! Merci beaucoup :) Je ne savais pas à propos de ~ et "".


Super - transformé en une réponse pour le compte rendu - veuillez vérifier et accepter.



2
votes

Les règles d'expansion pour ~ et * sont telles que ~ est remplacé par votre répertoire personnel en dehors d'une chaîne "", mais laissé seul à l'intérieur et * correspond au système de fichiers à l'extérieur "" mais pas à l'intérieur.

Vous voulez laisser * seul, pour que Java le voie (il a une signification spéciale pour -cp - il ne correspond qu'aux fichiers jar).

Essayez "$ HOME / api / apache-jena-3.10.0 / lib / *" ou ~ / api / apache-jena-3.10.0 / lib / *

Dans le premier, les règles $ var s'appliquent et $ HOME est remplacé et le * reste intact.

Dans le second, le ~ est remplacé et le * est échappé, donc il est laissé seul. Attention, il ne se développe pas plus tard lors de son utilisation. Si vous affectez à une variable, par ex. dans export utilisez "" autour de toute utilisation de la variable.


0 commentaires

1
votes

Dans mon cas, car selon le pom.xml

<resources>
        <resource>
            <!-- Use resource filtering to replace references to the artifactId in 
                the plugin.xml file -->
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

Nous devrions donc mettre les fichiers jar dans les fichiers de ressources, puis le projet sera compilé normalement


0 commentaires