我在将 scala 项目导出为 .jar 文件然后使用 cmd 中的命令运行它时遇到问题。该文件采用端口号作为其参数,因为它在服务器和客户端之间建立 TCP 连接。共有三个文件:
Engine.scala = 包含 main 方法的对象:启动一个 Web 服务器(等待来自 html 文件的输入查询并将其传输到文本处理服务器)和一个文本处理服务器(这将获取查询并搜索文本文件的倒排索引(爱丽丝梦游仙境;)并返回文本文件中出现查询项的所有行)。
TextProcessingServer:执行查询搜索
- WebServer:WAITING查询输入
当我在 Eclipse 中启动它并传递端口号(在我的例子中为 8090)时,一切正常,我可以使用网站查询我的服务器。
但是,如果我尝试导出它,它就不再起作用了。要将其导出到 jar,我执行以下操作:
在 Eclipse 中,我通过以下方式导出它:导出 -> Java -> JAR 文件 -> 1234.jar 并选中“导出已检查项目的所有输出文件夹”和“导出 Java 源文件和资源”。
在命令行中,我输入: java -cp 1234.jar:lib/scala-library.jar 分配1.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
有人可以帮我吗?我几乎尝试了互联网上建议的所有内容,例如调整 list 等,但似乎没有任何效果。它只是找不到 main 方法:(
当我在 Eclipse 中运行它时,我已经注意到我无法选择“作为 Scala 应用程序运行”,我只能将它作为 Java 应用程序运行。不知道这是否重要......
非常感谢您的帮助!
最佳答案
您来自分布式系统 HS2013,对吗? :-D
问题是,在命令行中您输入 lib/scala-library.jar
但您没有在 jar 所在的同一文件夹中提供 scala 库。
如果您的 jar 位于桌面上,则需要将文件夹 lib
从 scala 安装复制到桌面,或者只需提供 scala-library.jar(而不是键入 scala-library.jar
而不是 lib/scala-library.jar
)。
如果您使用的是 Windows,则应将 :
替换为 ;
,如下所示:
java -cp 1234.jar;lib/scala-library.jar assignment1.Engine 8090
它可能找不到您的文本文件,因此您也必须将其复制到同一文件夹(例如桌面)。
关于java - Scala 和 Eclipse : Export as Jar File, 但找不到 main 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19464196/