Scala和Eclipse:导出为Jar文件,但找不到main方法

时间:2013-10-19 08:46:56

标签: java eclipse scala jar

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

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

  • TextProcessingServer:执行查询搜索

  • WebServer:等待查询输入

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

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

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

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

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

    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应用程序运行。不知道这是否有任何重要性......

    非常感谢你的帮助!

1 个答案:

答案 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

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