使用javah生成.h文件出现无法访问的错误

错误提示如下:

E:\JavaDLL>javah -jni OnlineDLL.java
错误:无法访问 OnlineDLL.java
未找到 OnlineDLL.java 的类文件
javadoc: 错误 - 找不到类 OnlineDLL.java。
Error: 未在命令行中指定任何类。请尝试使用 -help。

E:\JavaDLL>javah -jni OnlineDLL
java.lang.VerifyError: (class: com/sun/tools/javac/comp/Enter, method: visitClas
sDef signature: (Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;)V) Illegal type i
n constant pool
        at com.sun.tools.javadoc.JavadocTool.make0(JavadocTool.java:75)
        at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:322)
        at com.sun.tools.javadoc.Start.begin(Start.java:128)
        at com.sun.tools.javadoc.Main.execute(Main.java:66)
        at com.sun.tools.javah.Main.main(Main.java:147)
javadoc: 错误 - 致命错误
1 错误

原因:环境变量的设置不正确,在MyEclipse环境中编译是不需要设置环境变量的,但是直接使用命令时需要设置,正确设置如下:

path为"%JAVA_HOME%\bin"
ClassPath设置为".;%JAVA_HOME%\lib"
JAVA_HOME为"E:\Program Files\Java\jdk1.6.0_13" (JDK的安装路径)

另外:需要先编译,后生成头文件:
javac clsName.java
javah clsName

当.java文件中包含PACKAGE信息时:
javac定位到文件所在目录下:javac clsName.java,或定位到域名的上一级目录下:javac www\domain\com\clsName.java,.class文件创建到与.java文件相同的目录下。
javah定位到域名的上一级目录下:javah -jni www.domain.com.clsName,.h文件创建到域名的上一级目录下。



转贴:http://hi.baidu.com/sonmeika/blog/item/2bb91f87fdb32b23c75cc352.html

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

今天下午使用javah生成一个头文件,是死活生成不了, 就是在路径D:\java\eclipseworkspace\Test\bin写javah的,还老是出现报错的情况错误:

无法访问 com.TestDll
找不到文件   TestDll.class
javadoc: 错误 - 找不到类 com.TestDll。
Error: 未在命令行中指定任何类。请尝试使用 -help。

结果我是上网搜集了一下资料,我是又把我的java,path,classpath路径检查了一下,又是实验了java 、javac等命令,可这些都没有错误,到最后在网上找到一个高手,结果一实验果然是我的classpath 有问题,重新设置一下classpath:    set classpath=.;%classpath% 终于生成了!!


你可能感兴趣的:(java,jdk,MyEclipse,domain,javadoc,Path)