Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vowpal Wabbit的Java API?_Java_Java Native Interface_Vowpalwabbit - Fatal编程技术网

Vowpal Wabbit的Java API?

Vowpal Wabbit的Java API?,java,java-native-interface,vowpalwabbit,Java,Java Native Interface,Vowpalwabbit,我正在尝试通过Java使用。我已经从GitHub下载并成功编译了代码。命令行工具工作正常。 在快速查看了存储库(尤其是)之后,我只能假设通过Java使用它已经是可能的了,我真的不想重新发明轮子 围绕Vowpal Wabbit的包装器,允许通过Java使用。此包装器设计为自包含式。因为 关于JNI的使用,这个JAR支持许多平台 我已经在我的项目中添加了maven依赖项(find),但是没有任何文档,我真的不知道从哪里开始。 我已经看到,似乎可以将VW与Java结合使用,但这家伙只使用Runtime

我正在尝试通过Java使用。我已经从GitHub下载并成功编译了代码。命令行工具工作正常。 在快速查看了存储库(尤其是)之后,我只能假设通过Java使用它已经是可能的了,我真的不想重新发明轮子

围绕Vowpal Wabbit的包装器,允许通过Java使用。此包装器设计为自包含式。因为 关于JNI的使用,这个JAR支持许多平台

我已经在我的项目中添加了maven依赖项(find),但是没有任何文档,我真的不知道从哪里开始。 我已经看到,似乎可以将VW与Java结合使用,但这家伙只使用
Runtime.getRuntime.exec()
调用他的bash命令,我找不到任何关于其他方法的文档(而且只有将VW与Java混合在一起,这没有帮助)。 我是JNI的新手,所以很可能有一些简单的东西我看不到。 说得很清楚,我的问题是:

  • 我是否应该创建一个有效的vw命令并通过
    Runtime.getRuntime.exec()
    使用它?这似乎不是JNI的精神,因为不需要任何包装器/库。另外,这并不能使它非常便携
  • (javaapi)文档在哪里

欢迎提供任何帮助或指导。

链接可能对设置JNI包装器有所帮助。

我在任何地方都找不到Java API文档,但是Java代码似乎有很好的文档记录——您是否尝试过自己从代码中生成Javadoc?

确实有Java JNI包装器可以基本访问VW。我所说的“基本”是指教授你的模型,并在以后预测概率。它们还提供了Python库,其功能远远超过Java包装器。最近,我被迫通过扩展提供的代码向Java公开更多的VW方法

回到问题上来:

  • 而是使用central maven repo中提供的vw jni工件,克隆它们的代码并运行
    make all java
    。在某些情况下,自己编译代码将是唯一的解决方案,例如,提供的工件不会在OpenSuse上运行(我的情况)
  • 代码非常简单。create是一个从Java获取VW实例的工厂

您可以查看我们内置的vowpal wabbit JNI包装器:

我们编写了可以作为使用示例的集成测试,还编写了API文档。检查自述文件的“”部分


希望这会有所帮助。

我不认为这会增加很多,但之前的答案都没有给出明确的答案。就像前面提到的@Macchiatow一样,要使用Vowpal Wabbit附带的Java包装器,您需要:

  • (在项目根目录上)
    makeall-java
    makejava
  • 将cd插入
    java
    并使用
    mvn测试验证安装
  • 然后,您需要安装
    mvn
    ,以便将javaapi安装到本地maven存储库中。假设这将在您的机器上构建JNI部件,以便在安装了必要的本机C/C++库并可供
    make
    命令使用的情况下适合您平台的C/C++库
  • 您应该能够在您自己的项目中使用的构建工具(ant/maven/boot/leiningen/sbt/etc.as)中包含来自这些JAR的vowpal包
  • 有关更多背景信息,请参阅。我想它想说的是,如果你想要一个来自maven central的现成jar,你应该确保它是你正在使用的同一个vowpal版本,但不知道更多,我想如果你像上面那样构建它,你一定是在使用同一个版本


    我用Ubuntu 16.04和Java 8重新克隆了上述过程。

    我是大众JNI包装器的两位主要作者之一。自发布此问题以来,界面发生了重大变化。我们现在鼓励用户自己编译本机端,并在
    java.library.path
    上提供它。我们对自述文件进行了重大更新,以展示如何从Java使用该库


    我完全同意你的批评,我们没有发布JavaAPI。我将在下一次修改此代码时处理此问题。同时,请随意克隆库并运行
    mvn install
    ,您可以自己生成Java API文档。它们应该非常详细,因为我们花了大量精力编写详细的文档。

    谢谢。事实上,另外两个问题中的一个已经指向了这个链接,它对我的帮助并不比对另一个OP的帮助更大,更何况它现在已经过时了。此外,如果我理解正确的话,这个家伙试图做的事情与存储库的“java”目录中已经做过的差不多。我的主要问题是我不知道如何使用它。到目前为止,这实际上是我最好的机会(谁说“只有”?)。我只是希望在某个地方有别的东西能给我一个切入点。