导航:首页 > 编程语言 > javahjni找不到类

javahjni找不到类

发布时间:2022-09-20 02:29:47

java 错误:找不到或无法加载主类

第一,这个程序是没有错。
第二,你的类名是“Test”,但是你的java文件名就应该是“Test.java”。
第三,在运行里输入cmd敲回车建进入一个控制台的命令框,请输入javac回车查看java有没有
安装好,如有问题有两种肯能:一是根本就没有安装java程序或者安装时没有正确安好,
二是环境变量没有配好。
第四,环境变量配置,变量名Path的值应该是:D:\Program Files\Java\jdk1.7.0\bin
把这个路径放最好放到最前面用;号与其它隔开
变量名CLASSPATH的值是 .; 就这样就可以(当然如果你要用到其它jar包就要配置)
变量名JAVA_HOME的值是 D:\Program Files\Java\jdk1.7.0
第五,编译和运行程序,如果你的Test.java放在D盘根目录下,在运行里输入cmd敲回车建进
入一个控制台的命令窗口,敲“D:”回车,输入javac Test.java 回车,再输入java Test 回车。就这样搞定。
最后,我上次碰到一位朋友和你遇到同样的问题,jdk版本和你用的一样,但是我没有用过1.7版本
后来是他加了我的QQ通过远程连接我帮他弄好了,我发现他有这么几个问题:1.存放java的文件夹名有中文(用中文也可以,不过个人认为最好还是用英文命名文件夹名称)。2.他的path变量配置有多个java的路径,而且没有提前。也就是说:path:D:\Program Files\Java\jdk1.7.0\bin;这项放在最前面。3.因为1.7的版本我没有用过所以我叫他换成了1.6的版本(如果你需要我可以发给你)

希望对你有帮助!

❷ javah的问题

C:\Program Files\Java\jdk1.6.0_15\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_15\lib\tools.jar这两个环境变量要放在classpath里面的

❸ 使用javah生成头文件时,找不到类,怎么回事路径没有错误

楼主解决了吗?我也遇到这个问题不知怎么回事。

❹ eclipse中JNI找不到头文件,如何设置路径

方法是:
1、在Eclipse环境下,打开下图中的最右边那个按钮。
2、新建一个Program,写上名字比如“javaH”,然后填写下面几项内容:
2.1、Location:把JDK下面的javaH.exe的全路径填进来。
2.2、Working Directory:
${project_loc}/bin

${project_loc}为在Eclipse环境下的变量,是工程路径的意思,定位到该路径的bin目录下,也就是classes文件存放的路径。
3、跑到Eclipse工程中选中一个需要编译的类,然后按这个按钮试试。是不是在你的jni文件夹下生成了

❺ javah jni javah com.ndk.NDKTESTActivity 生成不了头文件 说找不到这个类 报下面这错误

直接在项目的根目录下,cd到工程的src/main/java目录,然后再javah

❻ android studio 2.0 include lt;jni.h>找不到 有知道的小伙伴吗

总共有三种方式生成Jni头文件,但归根结底只有一种,只是操作方法不一样,我在这里做一下记录,方便下次使用。1.11.利用AndroidStudio的Terminal,进入你自己的Android工程文件的app/src/main目录,例如(D:\Users\AndroidStudio\Application\app\src\main)在Terminal中输入命令cdapp\src\main这样就进入到了main目录,可以使用dir命令查看当前目录有哪些文件总共有三种方式生成Jni头文件2.在Terminal中输入命令javah-djni-jni-classpath..\..\build\intermediates\classes\debugcom.example.lenovo.application.JniClass解释:-d输出目录,后面跟上要生成的目录名-jni生成Jni样式的标头文件-classpath指定加载类的路径,后面跟上你要生成头文件的这个类的路径,例如:..\..\..\build\intermediates\classes\debug(这个是类所在的路径)com.example.lenovo.application.JniClass(类的包名)注意,要生成.class文件,要MakeProject3.如果前面没有出错的话,就能看到jni文件和生成的头文件其实jni目录可以不用命令生成,AndroidStudio已经为我们准备好了。这样就能快速的生成jni目录了。然后在Terminal中进入到该目录,输入命令cdapp\src\main\jni在执行如下命令javah-djni-jni-classpath..\..\build\intermediates\classes\debugcom.example.lenovo.application.JniClass这样也能生成头文件利用Windows的cmd生成jni头文件1.进入到你自己Android工程目录下的app\build\intermediates\classes\debug2.然后Shift加鼠标右键,点击红色方框的内容3.出现cmd命令行,输入如下命令javah-jnicom.example.lenovo.application.JniClass4.会在当前目录生成*.h头文件,把它拷贝进jni目录就可以了。jni目录可以按照上面的方法创建至此,生成jni头文件的三种方法讲解完毕。

❼ Jnative java调用c/c++ dll运行出错,提示找不到方法,怎么解决啊

应该这样 extern "C" __declspec(dllexport) int add(int a,int b)

❽ java 利用jni调用dll出错!头都大了,真是郁闷,老是报错找不到native 方法!

没用过jni, 基本上都是jna解决的
不过稍微搜了一下, 看到这句
在这里有必要多句嘴,在执行javah的时内候,要输入完整的包名容+类名。否则在以后的测试调用过程中会发生java.lang.UnsatisfiedLinkError这个异常。

❾ java中无法加载或找不到主类

//这个问题原因有以下几种,但是和环境变量并没有太大的关系
//能够执行java和javac就证明你的环境变量已经配置好了,其实classpath可以不配置
//假如有如下文件:H:codeHello.java
publicclassHello{
publicstaticvoidmain(String[]args){
System.out.println("Hello");
}
}
//正确编译命令:javacHello.java
//正确<ahref="https://www..com/s?wd=%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-"target="_blank"class="-highlight">运行命令</a>:javaHello

错误1:H:code>javaHello.java
错误:找不到或无法加载主类Hello.java
原因:命令错误

错误2:H:code>javaHello.class
错误:找不到或无法加载主类Hello.class
原因:命令错误

错误3:java源文件带有包名,往往容易出错
如:H:codeHello2.java
packagecom.example;

publicclassHello2{
publicstaticvoidmain(String[]args){
System.out.println("Hello2");
}
}
代码看上去没什么问题,执行:
H:code>javacHello2.java
H:code>javaHello2
错误:找不到或无法加载主类Hello2

解决办法:
+.删除包名或者
+.在code下创建一个与包名相同的文件结构(H:codecomexampleHello2.java)
编译:H:code>javaccom/example/Hello2.java
运行:H:code>javacom.example.Hello2

❿ android stdiondk要什么路径

创建工程
创建一个名为jniDemo的blank activity工程,activity名为MyActivity,在MyActivity类的最后声明一个方法,这个方法会在C函数中去实现,如下图所示,

jni部分
设置ndk路径,打开local.properties,增加
ndk.dir=/home/djstava/Workshop/Android/android-studio/ndk

点击android studio左下角的Terminal
cd src/main

javah -d jni -classpath ~/Workshop/Android/android-studio/sdk/platforms/android-4.4.2/android.jar:../../build/intermediates/classes/debug/ com.example.djstava.jnidemo.MyActivity

参数意义:
-d 输出目录,jni是gradle默认的路径
-classpath jar的路径,经常碰到的找不到activity的类的错误一般是由这个引起的
com.example.djstava.jnidemo.MyActivity 包名+activity

这条命令执行完毕后,会在src/main下生成jni目录,并产生头文件com_example_djstava_jnidemo_MyActivity.h,其内容为
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class com_example_djstava_jnidemo_MyActivity */

#ifndef _Included_com_example_djstava_jnidemo_MyActivity
#define _Included_com_example_djstava_jnidemo_MyActivity
#ifdef __cplusplus
extern "C" {
#endif
#undef com_example_djstava_jnidemo_MyActivity_MODE_PRIVATE
#define com_example_djstava_jnidemo_MyActivity_MODE_PRIVATE 0L
#undef com_example_djstava_jnidemo_MyActivity_MODE_WORLD_READABLE
#define com_example_djstava_jnidemo_MyActivity_MODE_WORLD_READABLE 1L
#undef com_example_djstava_jnidemo_MyActivity_MODE_WORLD_WRITEABLE
#define com_example_djstava_jnidemo_MyActivity_MODE_WORLD_WRITEABLE 2L
#undef com_example_djstava_jnidemo_MyActivity_MODE_APPEND
#define com_example_djstava_jnidemo_MyActivity_MODE_APPEND 32768L
#undef com_example_djstava_jnidemo_MyActivity_MODE_MULTI_PROCESS
#define com_example_djstava_jnidemo_MyActivity_MODE_MULTI_PROCESS 4L
#undef com_example_djstava_jnidemo_MyActivity_MODE_ENABLE_WRITE_AHEAD_LOGGING
#define com_example_djstava_jnidemo_MyActivity_MODE_ENABLE_WRITE_AHEAD_LOGGING 8L
#undef com_example_djstava_jnidemo_MyActivity_BIND_AUTO_CREATE
#define com_example_djstava_jnidemo_MyActivity_BIND_AUTO_CREATE 1L
#undef com_example_djstava_jnidemo_MyActivity_BIND_DEBUG_UNBIND
#define com_example_djstava_jnidemo_MyActivity_BIND_DEBUG_UNBIND 2L
#undef com_example_djstava_jnidemo_MyActivity_BIND_NOT_FOREGROUND
#define com_example_djstava_jnidemo_MyActivity_BIND_NOT_FOREGROUND 4L
#undef com_example_djstava_jnidemo_MyActivity_BIND_ABOVE_CLIENT
#define com_example_djstava_jnidemo_MyActivity_BIND_ABOVE_CLIENT 8L
#undef com_example_djstava_jnidemo_MyActivity_BIND_ALLOW_OOM_MANAGEMENT
#define com_example_djstava_jnidemo_MyActivity_BIND_ALLOW_OOM_MANAGEMENT 16L
#undef com_example_djstava_jnidemo_MyActivity_BIND_WAIVE_PRIORITY
#define com_example_djstava_jnidemo_MyActivity_BIND_WAIVE_PRIORITY 32L
#undef com_example_djstava_jnidemo_MyActivity_BIND_IMPORTANT
#define com_example_djstava_jnidemo_MyActivity_BIND_IMPORTANT 64L
#undef com_example_djstava_jnidemo_MyActivity_BIND_ADJUST_WITH_ACTIVITY
#define com_example_djstava_jnidemo_MyActivity_BIND_ADJUST_WITH_ACTIVITY 128L
#undef com_example_djstava_jnidemo_MyActivity_CONTEXT_INCLUDE_CODE
#define com_example_djstava_jnidemo_MyActivity_CONTEXT_INCLUDE_CODE 1L
#undef com_example_djstava_jnidemo_MyActivity_CONTEXT_IGNORE_SECURITY
#define com_example_djstava_jnidemo_MyActivity_CONTEXT_IGNORE_SECURITY 2L
#undef com_example_djstava_jnidemo_MyActivity_CONTEXT_RESTRICTED
#define com_example_djstava_jnidemo_MyActivity_CONTEXT_RESTRICTED 4L
#undef com_example_djstava_jnidemo_MyActivity_RESULT_CANCELED
#define com_example_djstava_jnidemo_MyActivity_RESULT_CANCELED 0L
#undef com_example_djstava_jnidemo_MyActivity_RESULT_OK
#define com_example_djstava_jnidemo_MyActivity_RESULT_OK -1L
#undef com_example_djstava_jnidemo_MyActivity_RESULT_FIRST_USER
#define com_example_djstava_jnidemo_MyActivity_RESULT_FIRST_USER 1L
#undef com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_DISABLE
#define com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_DISABLE 0L
#undef com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_DIALER
#define com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_DIALER 1L
#undef com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_SHORTCUT
#define com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_SHORTCUT 2L
#undef com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_SEARCH_LOCAL
#define com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_SEARCH_LOCAL 3L
#undef com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_SEARCH_GLOBAL
#define com_example_djstava_jnidemo_MyActivity_DEFAULT_KEYS_SEARCH_GLOBAL 4L
/*
* Class: com_example_djstava_jnidemo_MyActivity
* Method: getStringFromJNI
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_example_djstava_jnidemo_MyActivity_getStringFromJNI
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

根据产生的头文件,在同级目录创建C源文件,内容如下
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class com_example_djstava_jnidemo_MyActivity */

/*
* Class: com_example_djstava_jnidemo_MyActivity
* Method: getStringFromJNI
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_example_djstava_jnidemo_MyActivity_getStringFromJNI
(JNIEnv *env, jobject obj)
{
return (*env)->NewStringUTF(env,"Hello android from jni!");
}

gradle配置
打开build.gradle,在defaultConfig设置项内添加
ndk {
moleName "jniLib" //这是模块名称,在加载时会被用到
}

在defaultConfig设置项后面添加
flavorGroups "abi"

proctFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilter "armeabi-v7a"
}
}
mips {
ndk {
abiFilter "mips"
}
}
}

在MyActivity中加载jni模块,如下图所示,要去掉前缀lib和后缀.so

修改activity_my.xml
添加textView的id
android:id="@+id/jni_text"

阅读全文

与javahjni找不到类相关的资料

热点内容
linux账户设置密码 浏览:69
查看数据库各表记录数 浏览:968
linux查看文件的行数 浏览:692
fpga约束文件如何自动生成 浏览:377
linux打开的文件数 浏览:973
win8修改公用网络 浏览:324
linuxlcrt 浏览:30
编程里res是什么意思 浏览:616
dm80082版本固件 浏览:37
苹果手机用什么可以打开psd文件 浏览:627
服务号和小程序的区别 浏览:888
360手机助手qq文件位置 浏览:693
如何学习数码编程 浏览:60
微信消息发布出去 浏览:377
windows文件名一个个消失 浏览:907
易语言设置文件所有者 浏览:197
iphone手机如何显示wifi密码 浏览:880
文山大数据 浏览:496
3dsrxtools怎么升级 浏览:903
乐高的机器人编程是用什么 浏览:542

友情链接