2013-05-31 67 views
0

我试图运行一个使用PrintWriter的java程序,并调用PrintWriter.format()方法。它运行正常在Eclipse中,但在命令行中运行时,我得到这个:为什么java不能读取rt.jar?

/usr/java/jdk1.6.0_06/jre/lib/rt.jar: error reading zip file 
Exception in thread "main" java.lang.NoClassDefFoundError: java/util/Formatter 

这是否意味着Java可以不读从它自己的库.jar?任何人都知道这个解决方案?

我正在使用Java 1.6,正如文件路径所示。

编辑:当我从linux机器上的命令行运行时,它也工作正常。只是不在Windows上(通过PuTTY,如果这是相关的)。

+0

你的类路径设置不正确 – NimChimpsky

+0

它应该如何设置? – dmeyerson

+1

您在命令行中使用的命令是什么?一般你需要使用java -cp“jar”yourProgram的路径。如果该jar文件不在类路径 – scrappedcola

回答

4
/usr/java/jdk1.6.0_06/jre/lib/rt.jar: error reading zip file 

它看起来像你的rt.jar副本已被破坏:一些程序与垃圾覆盖它。要修复它,你应该从某个地方得到新的副本,或者重新安装JDK。

+0

但是它也适用于我从linux机器上运行它。所以'rt.jar'必须有正确的东西。不是说文件路径有问题吗(至少当我从Windows机器上运行程序时)? – dmeyerson

+0

'/ usr/java/..'是一个Unix文件路径。你如何在Windows机器上看到这条路?你如何运行你的程序? – Joni

+0

啊,就是这样!或者至少有一部分。我通过写入Linux系统中的bash脚本运行程序。 但是,当我尝试在没有脚本的情况下运行它时,问题仍然存在。当我输入'java -cp project.jar时:* path/to/MainClass [args]'我得到这个:'NoClassDefFoundError:java/util/Vector'我错过了什么? – dmeyerson

相关问题