小编ddu*_*kki的帖子

JNI_CreateJavaVM 在 64 位 C 中失败

我遇到了与 JNI_CreateJavaVM 退出代码 -1 类似的问题,除了我的代码在 32 位编译时运行,但在 64 位编译时失败。我正在使用 Windows SDK 7.1 平台更改 Visual Studio Express 2010 中每个配置的 JDK 位置。我的内容包括:

C:\Program Files\Java\jdk1.6.0_29\include; (for jni.h)
C:\Program Files\Java\jdk1.6.0_29\include\win32; (for jni_md.h)
Run Code Online (Sandbox Code Playgroud)

我的附加库是:

C:\Program Files\Java\jdk1.6.0_29\lib; (for jvm.lib and jawt.lib)
Run Code Online (Sandbox Code Playgroud)

我的源代码只是尝试用 C 初始化 JVM,然后无限循环以确保命令提示符在 VSC++ 中保持打开状态。

#include "stdafx.h"
#include "jni.h"

JNIEnv* create_vm(JavaVM ** jvm);

int i;
JavaVM* jvm;
JNIEnv * env;

int _tmain(int argc, _TCHAR* argv[])
{
    printf("Hello World!");
    env = create_vm(&jvm);

    if (env == 0) { return 7; }

    i = 0; …
Run Code Online (Sandbox Code Playgroud)

c java java-native-interface linker libraries

5
推荐指数
1
解决办法
9193
查看次数

内联代码比Java中的函数调用/静态函数慢

我一直在运行一些测试来查看内联函数代码(在代码本身中显式编写函数算法)如何影响性能.我将一个简单的字节数组写入整数代码,然后将其包装在一个函数中,从另一个类中静态调用它,并从类本身静态调用它.代码如下:

public class FunctionCallSpeed {
    public static final int numIter = 50000000;

    public static void main (String [] args) {
        byte [] n = new byte[4];

        long start;

        System.out.println("Function from Static Class =================");
        start = System.nanoTime();
        for (int i = 0; i < numIter; i++) {
            StaticClass.toInt(n);
        }
        System.out.println("Elapsed time: " + (double)(System.nanoTime() - start) / 1000000000 + "s");

        System.out.println("Function from Class ========================");
        start = System.nanoTime();
        for (int i = 0; i < numIter; i++) {
            toInt(n);
        }
        System.out.println("Elapsed time: …
Run Code Online (Sandbox Code Playgroud)

java inline function

2
推荐指数
1
解决办法
1374
查看次数

标签 统计

java ×2

c ×1

function ×1

inline ×1

java-native-interface ×1

libraries ×1

linker ×1