ACM Library简单示例不适用于jdk 1.7.0_79

问题描述 投票:0回答:2

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

java acm
2个回答
1
投票

解决了!

它不需要任何本地库......我必须做的是使用主条目:

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


0
投票

UnsatisfiedLinkErrorNative Method意味着没有本地库(对于windows它将是dll)加载,可以为你的acm.util.DOSCommandLine.getLine()方法调用。

使用您的库时,应该有本机包,它将包含系统体系结构的本机库。您必须将其中一个放入classpath文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.