在java中定义一个静态变量,在本地方法中使用(比如在c中)并改变他的值,执行完本地方法后,能取到改变后的值吗?
解决方案 »
- 怎样为组件绘制圆角边框
- JSONObject放入自定义类对象问题
- Struts2,Spring,Ibatis向Oracle中插入数据时报错
- 请用最快(最有效率)的方法对以下规则的字符串进行排序
- J2SE J2EE的关系与不同是什么
- 如何把记录加到JTable中 谢谢??
- 真得好急!!!,关于打印的问题?/
- 换行
- 望大推荐几本Java的好书,多谢:)
- 我想应聘JAVA程序员但不知该做个什么样的作品展示,望大家给点建议!(注:我的水平目前还不高)
- 在jcreator中为什么无法编译javax.servlet.*和javax.servlet.http.*;
- javax.servlet.*是要怎么加载的?
//Test.java
public class Test
{
static int x; public static native void test();
static
{
System.loadLibrary( "test" );
}
public static void main( String[] args )
{
x=100;
System.out.println(x);
test();
System.out.println(x);
}
}
//test.cpp
#include "Test.h"
JNIEXPORT void JNICALL Java_Test_test
(JNIEnv *env, jclass cls)
{
jfieldID field = env->GetStaticFieldID(cls,"x","I"); //得到x的id
jint x=(jint)env-> GetStaticIntField(cls, field); //得到x的值
printf("(in C++)x=%d\n",x);
x=200;
env->SetStaticIntField(cls,field,x); //改x的值
}
-------------结果-------
100
(in C++)x=100
200