【问题标题】:Java Working DirectoryJava 工作目录
【发布时间】:2012-11-21 15:42:50
【问题描述】:

我对编程很陌生,所以这应该很容易。我正在从 eclipse 切换到 netbeans,我正在尝试将 libjinput-osx.jnilib 添加到我的工作目录中。我有 eclipse 的分步说明,但没有 netbeans。我大约有 2.5 小时和 65 次谷歌搜索,但我仍然找不到这两个基本问题的答案。

  1. Java 中的working directory 到底是什么?
  2. 如何将 .jnilib 文件添加到 netbeans 的工作目录中?

我的最终目标是获得一个 xbox 控制器来控制我编写的蛇游戏。我正在尝试使用 JInput 和this tutorial。为了在 OSX 上正确编译,我需要将 libjinput-osx.jnilib 放在“工作目录”中。

【问题讨论】:

    标签: java path xbox360 jinput


    【解决方案1】:

    这个问题有两个方面。

    当您从命令行运行命令时,“工作目录”是您运行命令时所在的目录。您正在阅读的说明说要将本机库放在那里,因为 Java 对本机库的默认搜索路径包括当前目录。或者,您可以在java 命令中添加-Djava.library.path=... 选项以明确设置搜索路径。

    当您在 Eclipse ... 或 NetBeans ... 中运行命令时,IDE 的启动器将设置适当的 JVM 参数以在搜索路径中包含项目的本机库目录。您需要将库放在那个目录中。 This wiki page 解释了您需要为 NetBeans 做什么。

    【讨论】:

    • 我将 .so、.dll 和 .jnilib 文件放在“工作目录”(与 src 文件夹相同的位置)内名为 snakeLibraries 的文件夹中。然后我右键单击库文件夹 -> 属性 -> 运行并将其添加到我的 VM 选项“-Djava.library.path=./snakeLibraries”中。它像冠军一样编译!感谢您的帮助。
    【解决方案2】:

    看起来你真正想做的是加载一个原生库。试试这个:

    public class MainClass {
        static {
            System.loadLibrary( "Your_native_lib_file_name" ); // Note: do not include the file extension!
        }
    }
    

    你也可以试试 -Djava.library.path=/exact/path/to/dir/

    从这里复制的答案: Java can't seem to find my native libraries

    【讨论】:

      【解决方案3】:

      “工作目录”是应用程序工作所在的位置...神秘吧 ;)

      通常它是应用程序的启动位置,尽管这可以通过标志和其他过程进行修改。

      在 Netbeans 中,工作目录通常是项目的根目录(其中包含 srcnbproject 文件夹),但这可以通过项目属性进行更改。

      在运行时查找工作目录的最简单方法之一(这对测试很有用)是执行类似...

      System.out.println(new File(".").getAbsolutePath());
      

      【讨论】:

        猜你喜欢
        • 2018-06-03
        • 2014-10-09
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 2011-10-12
        • 2010-10-24
        • 2023-03-14
        • 1970-01-01
        相关资源
        最近更新 更多