2016-09-27 2 views
0

Привет всем Эксперты java!ACM Library простой пример не работает с jdk 1.7.0_79

Когда я попытался немного пример Acm библиотеки

import acm.program.*; 

class prog extends ConsoleProgram { 


    public void run() { 

     int number = readInt("?"); 

     println("You entered: " number);  

     } 

} 

Он скомпилирован успешно. Я использовал такую ​​команду:

javac -cp acm.jar; main.java

java -cp acm.jar; прог

Но я получил эту ошибку:

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) 

Что это значит ... Я думаю, что версия проблему JDK .... однако я использую JDK 'jdk1.7.0_79'

По-моему, это исключение только для этой версии JDK. Попросите вас попробовать и дать отзыв. Спасибо ...

+0

@azurefrog я держал пари, что это в acm.program.ConsoleProgram классе – MGorgon

+0

Так оно делает! Я стою исправленным на b). – azurefrog

ответ

1

Решенный!

Он не требует какой-либо родной библиотеки ... То, что я должен был сделать, чтобы использовать основную запись как:

public static void main(String[] args) { 

    new prog().start(args); 

} 

Добавление после метода «запуска» он работает в настоящее время. Примечание: эта строка 'new prog(). Start (args);'

Это решение здесь: http://www.dreamincode.net/forums/topic/240789-acmjar-package-problem-class-wasnt-find-in-project/

Благодаря порывистый

Но мне потребовалось много времени Hushhhhh .....

0

UnsatisfiedLinkError в Native Method означает, что нет никакой родной библиотеки (для окон было бы DLL) Плёнка, которые можно было бы назвать для вашего метода acm.util.DOSCommandLine.getLine().

В вашей библиотеке должны быть встроенные пакеты, в которых будут встроены собственные библиотеки для вашей системной архитектуры. Вы должны поместить один из них в свою папку pathpath.