【问题标题】:Java RMI - jar on NetBeansJava RMI - NetBeans 上的 jar
【发布时间】:2012-04-07 14:48:25
【问题描述】:

我有一个 RMI 服务器正在使用来自另一个项目的类。我已将另一个项目的 jar 作为 RMI 上的库导入,它在 netbeans 上运行良好。虽然当我从 netbeans 生成的 .jar 运行 RMI 服务器时,我得到了 classnotfoundexceptionfor 导入的类。

Any suggestions why it would be running inside netbeans, but the jar isn't working?

我也不确定这是否是正确的选择,但在 RMI 上我检查了“使用的专用库文件夹”,因为其他项目非常小。

另外请注意,我也在另一个项目上导入服务器,以便它可以使用远程接口。(虽然我猜这与问题无关)。

【问题讨论】:

    标签: java netbeans jar rmi


    【解决方案1】:

    当你启动你的 rmi 服务器时,你把其他类的 jar 也放入了类路径?

    尝试从命令提示符启动 jar:

    java -jar -classpath rmiserver.jar:lib/other.jar rmiserver.jar
    

    【讨论】:

    • 我只需双击启动 jar。这些库位于一个名为 lib 的单独文件夹中,该文件夹与服务器 jar 位于同一位置。这就是它从 NetBeans 和其他项目生成的工作方式..
    • 尝试从命令提示符启动服务器,就像我在示例中所说的那样。
    • 我认为导致问题的原因是 .jar 文件的名称上有空格。我重命名了项目,但由于某种原因并没有更改 jar 的名称,所以我手动更改了它。之后服务器工作了。
    • 你知道有什么方法可以把所有东西都放在一个罐子里,包括图书馆吗?这样当我将程序发送给某人时,他就不需要将这两件事放在同一个地方,只需一个罐子
    【解决方案2】:

    如果您使用标准 netbeans 项目(而不是 maven 项目)构建项目,您将在构建最终 jar 的 dist 目录下看到一个 lib 目录。 Netbeans 将在主 jar 文件中构建清单,以便在该 lib 目录中查找依赖 jar,该目录与构建的 jar 的位置相关。因此,如果您将构建的 jar 放在一个目录中,请将 lib 文件夹复制到该目录,然后像这样启动它:

    java -jar my.jar 
    

    例如

    + folder
    |   my.jar
    +-+ lib
      | other.jar
    

    【讨论】:

      猜你喜欢
      • 2011-01-21
      • 2013-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 2011-10-20
      相关资源
      最近更新 更多