如何使用JNI定义资源

问题描述 投票:0回答:1

在JNI中,我知道你可以使用

env->DefineClass
定义一个类。例如,

jclass klass = client->env->DefineClass(nullptr, classLoader, (const jbyte*) classBytes, (jsize) classBytes_size);

同样,我也希望有一个在运行时定义资源的函数。我所说的“资源”是指打包在 jar 文件中的文件,例如图像或声音。但是,我找不到任何可以做到这一点的函数。为什么没有

DefineResource
功能?如果可以的话,你会怎么做?

java c++ java-native-interface
1个回答
0
投票

“资源”只是类路径条目之一上的普通文件。 如果您使用

java -cp ...:$SOME_DIRECTORY
运行代码,您可以将文件放入
$SOME_DIRECTORY
中,它们将被拾取。当然,此时您也可以使用普通文件处理方法..

JNI does 具有

DefineClass
的原因是,您可以定义新的 Java 类,而无需先将它们写入文件并让 ClassLoader 实例拾取它们。

© www.soinside.com 2019 - 2024. All rights reserved.