2014-04-07 62 views
0

从我编写命令提示符应用程序开始就已经有一段时间了,所以我有一些基本问题需要运行。由于最初的问题是使用可执行的jar文件,我简化了这个问题。找不到主类简化

我有我的课的PortServer包含一个主要方法:

public static void main(String[] args) throws Exception { 
    new PortServer(); 
} 

然后我展开我的jar文件。下面是输出为我的当前目录:

[email protected]:~/portserver$ find -name PortServer.class 
./com/blah/portserver/PortServer.class 

然后我尝试运行:

[email protected]:~/portserver$ /opt/java8/bin/java -cp . com.blah.portserver.PortServer 
Error: Could not find or load main class com.blah.portserver.PortServer 

威士忌,探戈,狐步舞?

+0

创建jar文件时,您需要创建一个清单文件,通知运行时主要位置。 – Shriram

+1

@Shriram不从jar文件运行。你读过我的文章了吗? – Thom

+0

为什么你给-cp。在你的执行中。因为如果你正在使用任何库你需要给。你可以尝试没有cp变量。 – Shriram

回答

0

我在Absurd-Mind之前猜到的答案是朝着这条道路前进,那就是我的主类扩展并实现了不在类路径中的其他类。

我跟踪了所有使用的类,并将它们添加到类路径中,并开始获取其他类未发现的异常,这是我的预期。

现在你知道了。

+0

谢谢你解决这个谜题:) –

+0

@ Absurd-Mind感谢您的反馈。你介意让我高兴吗?有人低估了这个问题和我的回答,并投票结束。我觉得这是我在网上任何地方都找不到的重要信息。 – Thom