Java的无法找到类文件时使用-cp选项,如下执行
javac -cp ~/softwares/pig-0.12.0/pig-0.12.0.jar PR.java
编译成功。 然而,当我运行上面生成的类我收到错误
java -cp ~/softwares/pig-0.12.0/pig-0.12.0.jar PR
Error: Could not find or load main class PR
如果我删除我得到以下错误-cp预计
java PR
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pig/PigServer
at PR.runPigScript(PR.java:9)
at PR.main(PR.java:21)
Caused by: java.lang.ClassNotFoundException: org.apache.pig.PigServer
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 2 more
能否请你告诉我什么可能是失败的原因是步骤2(无法找到或加载主类)。 下面是PR.java的代码
import org.apache.pig.ExecType;
import org.apache.pig.PigServer;
import org.apache.pig.backend.executionengine.ExecException;
public class PR {
public void runPigScript(){
try {
PigServer pigServer = new PigServer(ExecType.LOCAL);
pigServer.registerScript("RP.pig");
} catch (Exception ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
}
public static void main(String[] args){
PR pr = new PR();
pr.runPigScript();
}
}
从https://wiki.apache.org/pig/EmbeddedPig
要运行程序,你需要使用下面的命令先编译:
javac -cp <path>pig.jar WordCount.java
如果编译成功后,你就可以运行你的程序:
java -cp <path>pig.jar WordCount