0

大家好java专家!

当我尝试 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 版本抛出异常。请求尝试并提供反馈。谢谢...

4

2 回答 2

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 ......

于 2016-09-27T19:21:46.333 回答
0

UnsatisfiedLinkErroratNative Method表示没有加载可以为您的acm.util.DOSCommandLine.getLine()方法调用的本机库(对于 Windows,它将是 dll)。

对于您的库,应该有本机包,其中将包含适用于您的系统架构的本机库。您必须将其中之一放入您的类路径文件夹中。

于 2016-09-27T18:33:07.297 回答