Tag: jvm

JNIexception访问冲突

目前我正试图和JNI一起玩。 我的Java代码: public class test{ static{ System.loadLibrary(“wakeup64”); } public static native boolean setWakeupTime(Date date); public static void set(){ Date d = new Date(); setWakeupTime(d); } } C代码: #include #include “cpp_interface.h” #include JNIEXPORT void JNICALL Java_test_setWakeupTime (JNIEnv *env, jclass cl, jobject date){ printf(“test”); } int main(){ } 代码编译得很好但如果我运行我的java类我得到一个exception_access_violation: # # A fatal error has been detected […]

如何将JVM跳转指令的偏移量设置为32768?

在写一个关于JVM字节代码偏移的问题的答案时 ,我注意到javac的行为以及我无法解释的结果类文件: 编译这样的类时 class FarJump { public static void main(String args[]) { call(0, 1); } public static void call(int x, int y) { if (x < y) { y++; y++; // … (10921 times – too much code to post here!) y++; y++; } System.out.println(y); } } 然后生成的字节代码将包含以下if_icmpge指令: public static void call(int, int); Code: 0: […]

主要function不返回任何东西。 为什么?

关于C / C ++,main()必须始终返回一个整数(零表示成功,非零表示失败)。 我可以理解这一点,因为程序运行它变成一个进程,每个进程都应该有一个退出状态,我们通过echo $获得? 在进程结束后从shell中获取。 现在我不明白为什么main方法不能在Java中返回任何内容? 是否与程序在JVM上运行并且JVM进程可以返回以返回退出状态这一事实有什么关系? 请澄清。 谢谢, 罗杰

用于CLR的C ++到字节码编译器?

我希望能够编译一个C / C ++库,以便它在CLR中的托管运行时内运行。 使用JVM( NestedVM , LLJVM等)可以使用多种工具 ,但我似乎无法找到任何CLR。 有没有人试过这样做?

如何配置Native JNI库

如何配置用C编写的Java Native Interface库? 我知道通常的C分析器,但我的问题是如何分析整个集合,包括调用JVM方法,这可能会减慢程序的速度。

你可以在使用JNI从java调用的c ++函数中创建一个新的JVM吗?

所以我的设置是我有一个由我开发的.dll( A.dll ),它在原始应用程序中从外部进程调用,它基本上只是一个.exe文件,我没有源代码( B) .exe )。 A.dll的目的是与.jar文件通信,该文件也是由我开发的( C.jar )。 所以在应用程序中,“通信流程”如下所示 B.exe – > A.dll – > (通过JNI) – > C.jar 现在,我想要做的是在C.jar的开发环境中添加A.dll和C.jar之间的调用作为我的测试套件的一部分。 到目前为止,我已经创建了另一个.dll( D.dll ),它反映了A.dll中的所有函数,但是使用了JNIEXPORT,只是直接调用A.dll中的相应函数。 所以这种情况下的“沟通流程”如下: C.jar开发框架中的unit testing – >(通过JNI) – > D.dll – > A.dll – >(通过JNI) – > C.jar 在这一点上,一个非常简单的函数调用只是在C.jar中打印出来的东西, 它通过整个链条起作用; 从unit testing调用到C.jar 。 但是当我在A.dll中调用函数时会出现问题,该函数使用CreateJavaVM()创建一个新的JVM,这会产生以下错误: 初始化VM时出错无法加载本机库:找不到指定的过程 所以基本上我想知道它是否真的可以这样做,或者只是在同一进程中已经有一个正在运行的JVM时调用CreateJavaVM()根本不可能? 我知道你不能在同一个进程中多次调用CreateJavaVM() ,但是在这种情况下它只被调用一次但是过程中已经存在JVM – 你甚至可以在同一个进程中运行多个JVM吗? 解: 感谢@ apangin的回答,下面的代码片段解决了我的问题: […]