我在将scala项目导出为.jar文件时遇到问题,然后使用cmd中的命令运行它。该文件将端口号作为其参数,因为它在服务器和客户端之间建立TCP连接。有三个文件:
Engine.scala =包含main方法的对象:启动Web服务器(等待来自html文件的输入查询并将其传输到文本处理服务器)和文本处理服务器(这将获取查询和搜索文本文件的倒排索引(alice in wonderland;)并返回文本文件的所有行,其中出现查询词。)
TextProcessingServer:执行查询搜索
当我在eclipse中启动它并传递一个端口号(在我的情况下为8090)时,一切正常,我可以使用网站查询我的服务器。
但是,如果我尝试导出它,它就不再起作用了。要将它导出到jar,我会执行以下操作:
在eclipse中,我通过以下方式导出:Export - > Java - > JAR文件 - > 1234.jar并选中“导出已检查项目的所有输出文件夹”和“导出Java源文件和资源”。
在命令行中,我输入: 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
任何人都可以帮助我吗?我已经尝试了几乎所有在互联网上建议的东西,比如调整Manifest等,但似乎没有任何工作。它只是找不到主要方法:(
我在Eclipse中运行它时已经注意到的是我不能选择“以Scala应用程序运行”,我只能将它作为Java应用程序运行。不知道这是否有任何重要性......
非常感谢你的帮助!
答案 0 :(得分:1)
你来自Distributed Systems 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
它可能找不到您的文本文件,因此您必须将其复制到同一文件夹(例如桌面)。