日期:2014-05-20  浏览次数:20765 次

Linux下执行java的问题
首先安装JDK,配置环境变量:
export JAVA_HOME=/home/ap/plss/sup2/java6
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/*.jar

在某个目录下编辑Test.java
Java code

package cn.ccb.plss.documentservice.util;

public class Test { 
    public static void main(String args[]) { 
        System.out.println("A new jdk test !"); 
    } 
}



执行 javac Test.java 当前目录下产生Test.class文件
但执行 java cn.ccb.plss.documentservice.util.Test 时报错:

Exception in thread "main" java.lang.NoClassDefFoundError: cn/ccb/plss/documentservice/util/Test

另外,当Test.java中去掉包名cn.ccb.plss.documentservice.util后,可以正确执行

请问各位,怎么回事呢?如果必须要包名,我们怎么执行java程序?






------解决方案--------------------
[~]/cn/ccb/plss/documentservice/util: javac Test.java
编译完成后转入[~]目录运行:java cn.ccb.plss.documentservice.util.Test

当没有包名的时候,在默认包中,所以你直接在当前的目录就能找到Test。而加上包名之后你要在包名的父目录运行java才行。
------解决方案--------------------
Java code
mkdir classes
javac -d classes Test.java
java -classpath classes cn.ccb.plss.documentservice.util.Test