2012-05-25 164 views
0

我的程序在package pl.edu.uj.tcs.crazySocket;由于一些要求。我在crazySocket目录中工作。为了编译程序我使用命令java运行良好,'绝对'路径,不运行CLASSPATH指定

CLASSPATH=~/prog/colosseum/data javac tictactoe.java 

并且成功。我想运行该程序。我将javac更改为java并删除'.java'。我得到

Exception in thread "main" java.lang.NoClassDefFoundError: tictactoe 
Caused by: java.lang.ClassNotFoundException: tictactoe 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 

当我在树目录到〜/ PROG /斗兽场/数据获取和运行java pl/edu/uj/tcs/crazySocket/tictactoe一切工作正常。

CLASSPATH有什么问题?它不应该与javac和java一起工作吗?

回答

1

你的类路径没有问题,这是你拨打java这是错误的。

需要来指定全限定类名pl.edu.uj.tcs.crazySocket.tictactoe

+0

你是说我必须从基本目录运行程序?我无法单独在crazySocket目录中工作? –

+0

不,你可以从任何你想要的地方工作。但是,您的_always_(无论您身在何处)需要将完整的合格类名称传递给'java'。 – Mat

相关问题