1

我在将 scala 项目导出为 .jar 文件然后使用 cmd 中的命令运行它时遇到问题。该文件将端口号作为其参数,因为它在服务器和客户端之间建立 TCP 连接。共有三个文件:

  • Engine.scala = 包含 main 方法的对象:启动 Web 服务器(等待来自 html 文件的输入查询并将其传输到文本处理服务器)和文本处理服务器(这将获取查询并搜索文本文件(爱丽丝梦游仙境;)并返回文本文件中出现查询词的所有行)。

  • TextProcessingServer:查询搜索

  • WebServer:等待查询输入

当我在 Eclipse 中启动它并传递一个端口号(在我的情况下为 8090)时,一切正常,我可以使用网站查询我的服务器。

但是,如果我尝试导出它,它就不再起作用了。要将其导出到 jar,我执行以下操作:

  1. 在 Eclipse 中,我通过以下方式导出它:Export -> Java -> JAR File -> 1234.jar 并选中“导出已检查项目的所有输出文件夹”和“导出 Java 源文件和资源”。

  2. 在命令行中,我输入:java -cp 1234.jar:lib/scala-library.jar assignment1.Engine 8090

现在我收到以下错误消息:

Error: Could not find or load main class assignment1.Engine

使用的版本:

Scala IDE build of Eclipse SDK (Version Indigo)

Build id: 3.0.1-vfinal-20130718-1727-Typesafe

有谁能够帮助我?我几乎尝试了互联网上建议的所有内容,例如改编清单等,但似乎没有任何效果。它只是找不到主要方法:(

当我在 Eclipse 中运行它时,我已经注意到我不能选择“作为 Scala 应用程序运行”,我只能将它作为 Java 应用程序运行。不知道有没有什么重要的...

非常感谢你的帮助!

4

1 回答 1

1

你来自分布式系统 HS2013,对吧?:-D

问题是,在命令行中你正在输入lib/scala-library.jar,但你没有在你的 jar 所在的同一个文件夹中提供 scala 库。如果你的 jar 在桌面上,你需要将文件夹lib从你的 scala 安装复制到桌面或您只需提供 scala-library.jar (而不是您键入scala-library.jar而不是lib/scala-library.jar)。如果你使用的是 Windows,你应该:用 a替换它,;所以它看起来像这样:

java -cp 1234.jar;lib/scala-library.jar assignment1.Engine 8090

但它可能找不到您的文本文件,因此您也必须将其复制到同一文件夹(例如桌面)。

于 2013-10-21T14:50:22.193 回答