相关疑难解决方法(0)

JNI能否在类路径中实现通配符扩展?

我有一个C二进制文件,通过JNI调用Java.我将CLASSPATH设置为somedir/*以获取somedir中的所有jar.

当我运行二进制文件时,找不到所需的类定义.我跑的时候

java that.class's.name 
Run Code Online (Sandbox Code Playgroud)

从同一命令行,成功找到该类.如果我明确地将somedir /中的所有jar添加到类路径中,一切都很好,但这导致了一个长的类路径,我想避免.

通过JNI执行的JVM是否支持类路径的通配符扩展?可以这样做吗?

c java unix java-native-interface classpath

6
推荐指数
1
解决办法
2171
查看次数

调用使用libhdfs的程序时出现loadFileSystems错误

代码是libhdfs测试代码.

 int main(int argc, char **argv)
{
    hdfsFS fs = hdfsConnect("hdfs://labossrv14", 9000);
    const char* writePath = "/libhdfs_test.txt";
    hdfsFile writeFile = hdfsOpenFile(fs, writePath, O_WRONLY|O_CREAT, 0, 0, 0);
    if(!writeFile)
    {
        fprintf(stderr, "Failed to open %s for writing!\n", writePath);
        exit(-1);
    }
    char* buffer = "Hello, libhdfs!";
    tSize num_written_bytes = hdfsWrite(fs, writeFile, (void*)buffer, strlen(buffer)+1);
    if (hdfsFlush(fs, writeFile))
    {
        fprintf(stderr, "Failed to 'flush' %s\n", writePath);
        exit(-1);
    }
    hdfsCloseFile(fs, writeFile);
}
Run Code Online (Sandbox Code Playgroud)

我付出了很多努力来成功编译这个代码,但是当我运行程序时它不起作用.错误信息如下.

loadFileSystems error:
(unable to get stack trace for java.lang.NoClassDefFoundError exception: ExceptionUtils::getStackTrace error.)
hdfsBuilderConnect(forceNewInstance=0, nn=labossrv14, …
Run Code Online (Sandbox Code Playgroud)

c java ubuntu hadoop

3
推荐指数
1
解决办法
1194
查看次数

标签 统计

c ×2

java ×2

classpath ×1

hadoop ×1

java-native-interface ×1

ubuntu ×1

unix ×1