我java的程序是放在目录/MatrixCompute/bin/MR/下面的test程序的。
我最初在本地打包的时候是在/MatrixCompute/ 目录下打包,尝试了各种方法,比如jar -cf bin/ 或者 jar -cf bin/MR等,打好包后,用scp上传至服务器后,运行hadoop jar的时候,总会报错: Exception in thread "main" java.lang.NoClassDefFoundError: bin/MR/test (wrong name: MR/test)
我用jar -tf 看,发现路径没有问题。
经过各种尝试,终于在我进入/bin/目录下,用jar -cf MR来进行打包的时候,再上传后,用hadoop jar终于能够成功运行了!
我也不知道具体原因,不过我猜想可能跟服务器配置的java classpath有关?
知道的大神还请指点。