我正在尝试在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上正常工作,但似乎没有什么能在虚拟机上运行。有什么想法吗?
答案 0 :(得分:0)
您是否在VM上安装了应用程序所需的jar文件?
您是否正确配置了CLASS_PATH?
答案 1 :(得分:0)
我怀疑jvm或vm存在问题。问题出在你如何运行这个类。具体如何设置类路径。试试这个:
导航到您放置colt.jar的位置。通过键入pwd获取当前工作目录。使用此命令使用colt.jar的绝对路径构造run命令。
所以最终你应该运行(从包含你的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