étrange message d'erreur: mauvaise référence symbolique. Une signature en package.class se réfère à terme apache dans le package org qui n'est pas disponible
Quand j'ai essayé de compiler simple typesafe' akka programme (scala 2.10, akka, 2.1.0):
scalac -cp "akka-actor_2.10-2.1.0.jar:akka-camel_2.10-2.1.0.jar" write2.scala
error: bad symbolic reference. A signature in package.class refers to term apache
in package org which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling package.class.
error: bad symbolic reference. A signature in package.class refers to term camel
in value org.apache which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling package.class.
write2.scala:21: error: bad symbolic reference. A signature in package.class refers to term model
in value org.camel which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling package.class.
val mina = system.actorOf(Props[MyEndPoint])
three errors found
Le code de la ligne 21:
val mina = system.actorOf(Props[MyEndPoint])
(Le même programme a été compilé correctement dans Eclipse, le code source est OK)
Le plus probable des jar fichier est manquant dans -cp variable. La question est de ce que signifie cet étrange/inutile de message d'erreur.
Merci, Tomas
Vous avez une dizaine de jar fichiers manquants à partir de votre
-cp
: toutes les dépendances d'akka-l'acteur et akka-chameau (et leurs dépendances, et ainsi de suite...). Je recommande fortement d'utiliser un outil de construction comme SBT à prendre soin de ces choses.OriginalL'auteur xhudik | 2013-01-15
Vous devez vous connecter pour publier un commentaire.
Le message dit "Il n'y a pas de forfait
org.apache
dans mon classpath, et j'ai besoin d'elle lors de la lecture de fichierpackage.class
". Passer-Ylog-classpath
àscalac
et de regarder quelle est la réel classpath qui obtient pour le compilateur.'package.class" c'est là où les membres définis dans package objets sont compilées. Ce fichier peut être partie d'un autre jar dans le classpath, pas nécessairement votre propre code. Je souhaite que le message est plus simple, en effet.
En java termes, c'est une incompatibilité avec la version. Le compilateur attend à un type particulier de déclaration dans le paquet de l'objet, mais trouvé quelque chose de différent. Ajouter version appropriée dans le classpath pour résoudre ce problème. J'ai eu le même problème et corrigé par l'ajout de la version correspondante de pot.
OriginalL'auteur
Pour moi, c'était JDK pas ensemble sur le CHEMIN d'accès ni JAVA_HOME
Vous pouvez ajouter JAVA_HOME pointe vers votre JDK dossier racine et ajouter jdk/bin (qui inludes javac) directement sur le chemin.
Vous pouvez consulter l'Oracle de docs pour instruccions sur la façon d'ajouter le chemin d'accès
http://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html
OriginalL'auteur
Première fois à la Scala de l'utilisateur. J'ai eu quelques problèmes dans la configuration de mon eclipse et j'ai utilisé pour obtenir:
Finalement trouvé que la scala de test de la version 2.11 et le compilateur de la version doit correspondre.
Téléchargé scala version 2.11-RC1
<la dépendance> <groupId > org.apache.spark</groupId> <artifactId>spark-hive_2.10</artifactId> <version>1.6.2< version> <champ></> </dépendance> <dépendance> <groupId>com.datastax.spark</groupId> <artifactId>spark-cassandra-connector_2.11</artifactId> <version>2.3.0< version> </dépendance>
Où est-ce que scala test verion mentionné ? où dois-je vérifier la version de compilateur ?
OriginalL'auteur