在PlayN中,如何在没有“java.library.path中没有lwjgl”错误的情况下升级到PlayN版本1.3.1?

时间:2012-06-27 14:26:25

标签: eclipse maven lwjgl playn

更新

我无法正确更新的原因是我没有正确安装游戏的jar文件。通过首先在命令行上运行它来解决这个问题:

mvn install:install-file -DgroupId=com.mygame -DartifactId=mygame-core -Dversion=0.9-beta -Dpackaging=jar -Dfile=/home/klenwell/projects/mygame/playn/mygame/java/target/mygame-java-0.9-beta.jar

然后,在Eclipse中,我右键单击了java文件夹> Maven>测试。这更新了我的所有依赖项,包括lwjgl。

否则,请参阅thomasbroad's answer

原始问题

我就此主题咨询了以下权威,并应用了各种建议:

部分问题是我不确定我是否应该遵循Maven指令或Eclipse指令。我已经尝试过两者兼而有之。

我正在使用Maven在Eclipse上使用64位Ubuntu 12.04。一切正常,直到我将POM文件中的PlayN版本从1.2更改为1.3.1并引入了lwjgl依赖项。

我本来期望的是:

1)下载lwjgl(最新版​​本2.8.4)并按照lwjgl.org说明进行测试(这是成功的)

2)更新相应的POM文件

2A)将lwjgl.version作为属性添加到mygame / pom.xml

  <properties>
    <playn.version>1.3.1</playn.version>
    <lwjgl.version>2.8.4</lwjgl.version>
  </properties>

2B)添加lwjgl作为对mygame / mygame-java / pom.xml的依赖

  <dependency>
    <groupId>org.lwjgl.lwjgl</groupId>
    <artifactId>lwjgl</artifactId>
    <version>${lwjgl.version}</version>
  </dependency>

3)右键单击Eclipse中的mygame-java项目&gt;运行方式&gt;运行配置&gt;参数并将-Djava.library.path=target/natives-Djava.library.path=/absolute/path/to/my/lwjgl/lib添加到VM参数。 (我尝试了两种变体。)

我可以看到Eclipse中我的java项目文件夹下列出的依赖项。当我按照Eclipse的lwjgl.org指南进行操作时,我可以看到java项目文件夹下列出的jar。但我仍然得到错误。

经过两个小时令人痛苦的挫折之后,我希望有人可以指出我的致命疏忽,或提供明确的指示,帮助我恢复工作。感谢。

3 个答案:

答案 0 :(得分:1)

我之前将我的项目从1.2升级到1.3。我只更新了我的pom.xml文件以引用新版本的PlayN。我没有手动安装lwjgl,也没有添加lwjgl依赖项,因为PlayN隐含了这个依赖项

手动将差异找到here应用到您的项目,pins。

关键部分是java pom中的一个部分,它告诉Maven解压缩本机依赖项。这部分实际上是在之前的差异中添加的,因此您可能也希望查看there

现在你的IDE很可能会告诉你你的项目与你的poms不是最新的,更新项目,这应该引入lwjgl依赖关系并设置它正确的。

答案 1 :(得分:1)

我相信您应该将-Djava.library.path参数添加到VM参数中,而不是添加到运行时配置中的程序参数中。

另一个使用maven-option在Getting Started page上有所描述,值得注意的是,默认的嵌入式Maven是开发的错误,你应该下载并使用至少Maven 3.0.3,因为它在上面提到页面(但我猜你已经这样做了。)

答案 2 :(得分:0)

我刚刚开始使用PlayN 1.4重新开发一个新项目,并在Eclipse中再次遇到此问题。解决方法如下:

右键单击mygame-java&gt;运行方式&gt;运行配置...

然后将以下内容添加到Arguments选项卡下的VM Arguments:

-Djava.library.path=target/natives

然后成功运行为应用程序。

有一次,我还运行了所提到的mvn install:install-file...命令,但我不确定这是否有必要。