- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通过 eclipse,我正在尝试运行 fuse-jna 的文件系统 (HelloFS.java) 的内置示例,但它给了我 java.lang.NoClassDefFoundError 。
我的源项目在/home/syed/workspace/HelloFS
fuse-jna 类文件在 home/syed/Downloads/fuse-jna-master/build/classes/main/net/fusejna
在 eclipse 中,我通过构建路径添加了类文件夹,还在环境文件中添加了 jre 路径。我在下面附上了快照。
请帮我在eclipse中运行这个例子。
错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Structure
at net.fusejna.FuseFilesystem.mount(FuseFilesystem.java:545)
at net.fusejna.FuseFilesystem.mount(FuseFilesystem.java:550)
at HelloFS.main(HelloFS.java:22)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Structure
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more
这是内置示例文件系统的代码(没有红色下划线,我认为这意味着正确输入了 eclipse 构建路径,):
import java.io.File;
import java.nio.ByteBuffer;
import net.fusejna.DirectoryFiller;
import net.fusejna.ErrorCodes;
import net.fusejna.FuseException;
import net.fusejna.StructFuseFileInfo.FileInfoWrapper;
import net.fusejna.StructStat.StatWrapper;
import net.fusejna.types.TypeMode.NodeType;
import net.fusejna.util.FuseFilesystemAdapterFull;
public class HelloFS extends FuseFilesystemAdapterFull
{
public static void main(String args[]) throws FuseException
{
/*if (args.length != 1) {
System.err.println("Usage: HelloFS <mountpoint>");
System.exit(1);
}*/
new HelloFS().log(true).mount("./testfs1");
}
private final String filename = "/hello.txt";
private final String contents = "Hello World!\n";
@Override
public int getattr(final String path, final StatWrapper stat)
{
if (path.equals(File.separator)) { // Root directory
stat.setMode(NodeType.DIRECTORY);
return 0;
}
if (path.equals(filename)) { // hello.txt
stat.setMode(NodeType.FILE).size(contents.length());
return 0;
}
return -ErrorCodes.ENOENT();
}
@Override
public int read(final String path, final ByteBuffer buffer, final long size, final long offset, final FileInfoWrapper info)
{
// Compute substring that we are being asked to read
final String s = contents.substring((int) offset,
(int) Math.max(offset, Math.min(contents.length() - offset, offset + size)));
buffer.put(s.getBytes());
return s.getBytes().length;
}
@Override
public int readdir(final String path, final DirectoryFiller filler)
{
filler.add(filename);
return 0;
}
}
这是环境文件内容:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/java-6-openjdk-i386"
这是 fuse-jna 类路径
我添加了/main 文件夹
============================================= =========
@Viktor K. 感谢您的帮助,
通过下载 com.sun.jna » jna 到 referece 库修复上述错误
但现在它向我显示了新的错误
Dec 28, 2013 1:18:25 PM HelloFS getName
INFO: Method succeeded. Result: null
Dec 28, 2013 1:18:25 PM HelloFS getOptions
INFO: Method succeeded. Result: null
Exception in thread "main" java.lang.NoSuchMethodError: com.sun.jna.Platform.getOSType()I
at net.fusejna.Platform.init(Platform.java:39)
at net.fusejna.Platform.fuse(Platform.java:26)
at net.fusejna.FuseJna.init(FuseJna.java:113)
at net.fusejna.FuseJna.mount(FuseJna.java:172)
at net.fusejna.FuseFilesystem.mount(FuseFilesystem.java:545)
at net.fusejna.FuseFilesystem.mount(FuseFilesystem.java:550)
at HelloFS.main(HelloFS.java:22)
============================================= ========
嗯嗯
我认为我下载的那个不兼容,
在 fuse-jna 的临时文件夹中
/home/syed/Downloads/fuse-jna-master/build/tmp/expandedArchives/jna-3.5.2.jar_r4n26u14up0smlb84ivcvfnke/
有 jna3.5.2 类,我将它导入到 librarray,现在它工作正常。
我的问题解决了。非常感谢。
最佳答案
问题不在 Fuse-JNA 库中。 Fuse-JNA 库显然依赖于 jna 库(可以在公共(public) maven 存储库中找到 http://mvnrepository.com/artifact/com.sun.jna/jna )。您需要将此库添加为项目中的依赖项。您可以看到在您项目的引用库中没有可用的 com.sun.jna 包。
一般来说——如果你想使用包 A(在你的例子中是 Fuse-JNA)并且包 A 依赖于包 B(在你的例子中是 JNA),你必须自己添加 JNA 包作为项目的依赖项。一般来说,很难找出你想要使用的包的所有必需依赖项 - 因此许多项目都在使用 maven(或任何替代方案,如 gradle)。如果您想了解更多信息,请查看:Why maven? What are the benefits? .我强烈建议使用依赖项解析工具(如 maven),而不是手动解析依赖项。
另一种方法是下载一个包含所有依赖项的 fuse jar - 如果您认为它是您唯一需要的库。但是,如果您稍后添加其他依赖项,则添加带有依赖项的 jar 可能会导致大灾难。这可能会导致依赖冲突,很难发现问题。
关于java.lang.NoClassDefFoundError(Java、Eclipse、Fuse-JNA、Ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20819024/
我想用 FUSE 实现一个文件系统。当请求目录的内容时,只有该目录中的文件类型将被报告为子目录。比如目录下有ugur.PDF、guler.JPG、devatate.PNG文件,则不会报文件本身,而是报
在执行 xxx_readdir()在 fuse ,我使用以下代码: static int hello_readdir(const char *path, void *buf, fuse_fill_di
我正在尝试安装 fuse-python 包,当我运行时 python setup.py build 它失败了,当我检查 setup.py 的内容时,我发现了这一行 if os.system('pkg-
我正在尝试使用sshfs挂载远程文件系统。我在网上可以找到的所有指南都说我需要将自己添加到 fuse 组中,但是当我运行时 sudo gpasswd -a $USER fuse 我懂了 gpasswd
是否有可能获得 struct fuse_file_info* fi在函数 truncate() 中?为什么它一开始不存在? int truncate(const char* path, off_t s
Fuse ESB 似乎已被 Red Hat 收购,现在将作为 JBoss Fuse 提供。 假设它们本质上是相同的技术,加上或减去一些改进,是否正确? 我发现两者都是开源的,并且构建在相同的技术堆栈上
似乎 Fuse ESB 已被 Red Hat 收购,现在将作为 JBoss Fuse 提供。 假设它们本质上是相同的技术,加上或减去一些改进是否正确? 我看到两者都是开源的并且构建在相同的技术栈上,所
“Jboss Fuse”和“Red Hat JBoss Fuse”有什么区别 它们是一样的吗?两者都来自 Red Hat ,都基于 Jboss ,并且两个链接都来自 2016 年。你能帮忙吗? 最佳答
我正致力于在 Linux 中开发文件系统过滤器驱动程序类型的功能。我正在尝试探索和使用 http://sourceforge.net/projects/fuse-j/?source=typ_redir
我有两个旨在协同工作的链式 FUSE 文件系统,它们都以 root 身份运行:进程 P 尝试首先通过 FS1 访问文件 F; FS1 看向 FS2。现在 FS2 需要获取 P(而不是 FS1)的上下文
我想使用 mhddfs 将 /dev/sda2 与 /dev/sdb3 结合起来,但不能 我已经安装了 fuse 和其他但可以不是。如何帮助请帮助这是我的命令: [root@ns540490 ~]#
我正在尝试在我的 Docker 容器上安装 s3fs-fuse。到目前为止,这是我的 Dockerfile。 FROM centos:centos6 RUN yum -y update; yum
我已经在 datalab 机器上安装了 gcsfuse。 创建了一个目标机器并使用 chmod 来允许所有的写入权限 调用: !gcsfuse --foreground --debug_fuse ar
按照位于以下位置的说明后,我无法启动并运行 activemq-web-console: http://activemq.apache.org/osgi-integration.html 或者此主题:
我刚刚在用户空间中遇到了一个 VFS 和一个文件系统,例如 FUSE . 现在,据我了解,它模拟了一个文件系统,以便应用程序可以拥有标准的文件系统层次结构。但我不明白,为什么我们需要一个单独的文件系统
我使用 sshfs 挂载远程文件系统。如果 ssh 连接超时,可能会导致其他应用程序挂起(例如,仅打开本地文件的 vim session )。系统恢复大约需要 10 分钟。即使我以只读方式挂载远程文件
我需要知道 Jboss Fuse 和 Switchyard 有什么区别。 Switchyard 网站称它将取代 Jboss ESB。这带来了一个问题,FUSE 和 Switchyard 之间有什么区别
我有许多指针指向内存中不同(或相同)的位置。我想实现一种机制,允许我们“融合”给定指针子集所指向的位置。 我现在使用的是 perl 5.6.1,但我愿意接受其他语言的实现。我在 perl 中想出了以下
我正在开发一个将数据存储在 RAM 中的 fuse 文件系统,但是当我向文件写入内容时遇到了问题。该文件变成一个空白文件。 代码如下: #define FUSE_USE_VERSION 26 #inc
我正在尝试在 JBoss Fuse 中部署 Camel 服务,但是当我输入“start (bundleId)”时,出现以下错误 Error executing command: Error start
我是一名优秀的程序员,十分优秀!