2016-09-27 1 views
0

Salut Tous les experts java!ACM Library exemple simple ne fonctionne pas avec jdk 1.7.0_79

Quand j'ai essayé un petit exemple de la bibliothèque acm

import acm.program.*; 

class prog extends ConsoleProgram { 


    public void run() { 

     int number = readInt("?"); 

     println("You entered: " number);  

     } 

} 

Il compilé avec succès. J'ai utilisé la ligne de commande comme ceci:

javac -cp acm.jar; main.java

java -cp acm.jar; prog

Mais je suis arrivé cette erreur:

Exception in thread "main" java.lang.UnsatisfiedLinkError: acm.util.DOSCommandLi 
ne.getLine()Ljava/lang/String; 
     at acm.util.DOSCommandLine.getLine(Native Method) 
     at acm.util.DOSCommandLine.getCommandLine(JTFTools.java:1627) 
     at acm.util.JTFTools.getCommandLine(JTFTools.java:439) 
     at acm.util.JTFTools.getMainClass(JTFTools.java:464) 
     at acm.program.Program.main(Program.java:1320) 

Qu'est-ce que cela veut dire ... Je pense cependant le problème de la version JDK .... J'utilise 'jdk1.7.0_79' JDK

À mon avis, il lance exception seulement pour cette version JDK. Demande de vous essayer et donner votre avis. Merci ...

+0

@azurefrog Je parie qu'il est en classe acm.program.ConsoleProgram – MGorgon

+0

Alors Cela fait! Je suis corrigé sur b). – azurefrog

Répondre

1

Résolu!

Il ne nécessite aucune bibliothèque native ... Qu'est-ce que je devais faire était d'utiliser l'entrée principale comme:

public static void main(String[] args) { 

    new prog().start(args); 

} 

Ajout après méthode « run », il fonctionne maintenant. Note: cette ligne 'new prog(). Start (args);'

Cette solution trouvée ici: http://www.dreamincode.net/forums/topic/240789-acmjar-package-problem-class-wasnt-find-in-project/

Merci Choppy

Mais il m'a fallu beaucoup de temps Hushhhhh .....

0

UnsatisfiedLinkError à Native Method signifie qu'il n'y a pas de bibliothèque native (pour les fenêtres, il serait dll) chargé qui pourrait être appelé à votre méthode acm.util.DOSCommandLine.getLine().

Avec votre bibliothèque, il devrait y avoir des paquets natifs, qui contiendront des bibliothèques natives pour l'architecture de votre système. Vous devez en mettre un dans votre dossier classpath.