java生成本地头文件用javah出错问题
View Code
1 proxytest]# javah ObjectTransmitter 2 错误:无法访问 ObjectTransmitter 3 错误的类文件: ./ObjectTransmitter.class 4 类文件包含错误的类: com.zuishiming.proxytest.ObjectTransmitter 5 请删除该文件或确保该文件位于正确的类路径子目录中。 6 com.sun.tools.javac.util.Abort 7 at com.sun.tools.javac.comp.Check.completionError(Check.java:164) 8 at com.sun.tools.javadoc.DocEnv.loadClass(DocEnv.java:149) 9 at com.sun.tools.javadoc.RootDocImpl.<init>(RootDocImpl.java:77) 10 at com.sun.tools.javadoc.JavadocTool.getRootDocImpl(JavadocTool.java:159) 11 at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:330) 12 at com.sun.tools.javadoc.Start.begin(Start.java:128) 13 at com.sun.tools.javadoc.Main.execute(Main.java:66) 14 at com.sun.tools.javah.Main.main(Main.java:147)
出现错误的原因在于,编译头文件的类是在com.zuishiming.proxytest.ObjectTransmitter里,ObjectTransmitter前面的是包名称,不能在shell里作为当前目录执行javah ObjectTransmitter;假设当前项目名称为:SimpleTest,在/root/workspace/下,包的名称是com.zuishiming.proxytest在/root/workspace/SimpleTest/src,那么生成头文件的正确做法是:
1、cd /root/workspace/SimpleTest/src;
2、javah ObjectTransmitte。这样就能正确生成了。
============聊以备忘