如何在客户端获取jws缓存位置

时间:2014-05-15 05:27:39

标签: java linux caching java-native-interface java-web-start

众所周知,每个JVM进程都会创建一个缓存目录。像这样:

/root/.java/deployment/cache/6.0/35

2df4eba3-16182299      2df4eba3-16182299-n    2df4eba3-4678facc.idx
2df4eba3-16182299.idx  2df4eba3-1a176e8d.idx  2df4eba3-654177dc.idx

2df4eba3-16182299-n是缓存位置。

我想使用JNI编程获得这样的JWS缓存位置。我试图用这种方式获取位置:

    DIR *dirp;
    FILE *fp;
    struct dirent *entry;
    char path[2048];
    char link[2048];
    char read_buf[2048];
    dirp = opendir("/proc/self/fd");
    if (dirp == NULL)
    {
        return -1;
    }
    while((entry = readdir(dirp)) != NULL)
    {
        char *tmp = entry->d_name;
    int res = 0;
    sprintf(link, "/proc/self/fd/%s", entry->d_name);
    res = readlink(link, path, sizeof(path));

    if (res < 0 || res >= sizeof(path))
    {
        continue;
    }
    int j = 0;
    if (strstr(path, "libgoodluck.so") != NULL)
    {
        path[res] = '\0';
        break;
    }
    }

我加载库libgoodluck.so,这将被下载到缓存位置。但我无法找到正确的道路。

我该怎样做才能找到正确的位置?

0 个答案:

没有答案