0

我正在尝试在 VMWare Workstation 上运行简单的 java 代码。我有以下简单的测试主文件:

import cern.jet.random.engine.RandomSeedGenerator;;

public class TestDataService {

    //private static Logger logger = Logger.getLogger(TestDataService.class);
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Hello World DAI!");

        // Input some data.
        RandomSeedGenerator re = new RandomSeedGenerator();
        return;
}
}

RandomSeedGenerator 是 colt.jar 库中的一个类,我的 lib 文件夹下有 jar 文件。

我正在用 ant 构建项目,并且我有以下清单文件,我在其中设置了类路径:

Manifest-Version: 1.0
Main-Class: edu.umass.TestDataService
Name: edu/umass/TestDataService/Version.class
Class-Path: lib/colt.jar

当我从运行 Red Hat Linux 的 VMWare shell 运行代码时,我得到了这个异常:

[root@localhost] java -jar app.jar

Hello World DAI!
Exception in thread "main" java.lang.NoClassDefFoundError: cern/jet/random/engine/RandomSeedGenerator
at edu.umass.TestDataService.main (Unknown Source)
Caused by: java.long.ClassNotFoundException: cern.jet.random.engine.RandomSeedGenerator

最后一点,在带有 Eclipse 的 Windows 上一切似乎都可以正常工作,但在虚拟机上似乎没有任何工作。有任何想法吗?

4

2 回答 2

0

您是否在 VM 上安装了应用程序所需的 jar 文件?

您是否正确配置了 CLASS_PATH?

于 2011-05-09T15:38:50.077 回答
0

我怀疑 jvm 或 vm 有问题。问题将在于您如何运行课程。具体来说,您如何设置类路径。试试这个:

导航到放置 colt.jar 的位置。通过输入 pwd 获取当前工作目录。使用它来使用 colt.jar 的绝对路径构造运行命令。

所以最终你应该运行(从包含你的 jar 的目录)这样的东西:

java -cp /the/full/path/to/lib/colt.jar -jar app.jar

一旦你完成了这项工作,你就可以尝试找出正确的相对路径是什么。然后你就可以做

java -cp a/relativel/path/to/lib/colt.jar -jar app.jar
于 2011-05-09T16:10:22.280 回答