嗨所有java专家!
当我尝试一个acm库的小例子
import acm.program.*;
class prog extends ConsoleProgram {
public void run() {
int number = readInt("?");
println("You entered: " number);
}
}
它编译成功。我使用这样的命令行:
Java这杯Ankjar; Mankjawa
java -cp acm.jar; PROG
但我得到了这个错误:
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版本抛出异常。请求尝试并提供反馈。谢谢...
解决了!
它不需要任何本地库......我必须做的是使用主条目:
public static void main(String[] args) {
new prog().start(args);
}
在'run'方法之后添加它现在有效。注意:这一行'new prog()。start(args);'
这个解决方案在这里找到:http://www.dreamincode.net/forums/topic/240789-acmjar-package-problem-class-wasnt-find-in-project/
谢谢Choppy
但是我花了相当多的时间Hushhhhh .....
在UnsatisfiedLinkError
的Native Method
意味着没有本地库(对于windows它将是dll)加载,可以为你的acm.util.DOSCommandLine.getLine()
方法调用。
使用您的库时,应该有本机包,它将包含系统体系结构的本机库。您必须将其中一个放入classpath文件夹中。