我试图将我的Groovy项目移动到没有Eclipse的服务器上。为了最大限度地减少不确定性,我在Eclipse(在我的PC上)编译了我的项目,并将项目(在/ bin中编译的所有.class)复制到服务器中。之后我一直遇到错误:
Error: Could not find or load main class edu.xxx.textrank.TrendAnalysis
这就是我运行代码的方式:
所有.groovy和.java都在文件夹中... / TextRank / src / edu / xxx / textrank /,所有已编译的.class文件都在文件夹中... / TextRank / bin / edu / xxx / textrank /,所有依赖的.jar文件都在文件夹... / TextRank / lib /中。在目录... / TextRank / bin中,我运行了java -cp ../lib/*.jar:. edu/xxx/textrank/KeywordExtractor
并遇到了错误。 TrendAnalysis.class是从TrendAnalysis.groovy编译的,还有一些从groovy中的闭包编译的辅助.class:
TrendAnalysis$_allPeriodKeywordStudy_closure1.class TrendAnalysis$_certainPeriodKeywordStudy_closure3.class
TrendAnalysis$_allPeriodKeywordStudy_closure2.class
但是,从.java编译的那些.class文件的情况并不完全相同。例如,我能够通过相同的命令运行Patterns.class
从Patterns.java
编译而没有内部类
[xuch@xxxxx bin]$ java -cp ../lib/*.jar:. edu/xxx/textrank/Patterns
abcdefghijk
我想知道什么可能是真正的罪魁祸首。我可以运行.class文件而无需在另一台服务器上重新编译它们吗?或者我能够在不调用所有内部类文件(由Groovy自动生成)的情况下运行主.class?
任何建议和帮助表示赞赏!快速解决方案也会有所帮助(比如如何将所有内容编译成可执行文件.jar等)。非常感谢!!
编辑:一件重要的事情,我的.java和.groovy都在包edu.xxx.textrank中。换句话说,他们都有package edu.xxx.textrank;