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