我是Java新手,正在制作许可证生成器。这是我目前的设置。
com.example.licensegenerator.client (used by the client application)
:LicenseLoader (no Main method)
:LicenseDownloader (no Main method)
com.example.licensegenerator.server.keys (used by the server)
:ProductKeyGenerator(Main method)
com.example.licensegenerator.server.license (used on the server also)
:LicenseGenerator(Main method)
com.example.licensegenerator.lib (Shared classes between client and server)
:Contants (no main)
现在我有几个问题。
在单个项目中有多个main()方法可以吗?我能将它们编译成不同的.jar文件吗? (在这种情况下,我需要两个不同的服务器罐)
有没有更好的方法来设置软件包?
一个完全不相关的问题,除了异常之外,最好是立即处理它们或抛出它们并让主方法捕获它们(如果发生错误,程序无法恢复)
答案 0 :(得分:0)
以下是答案。
如果你有多个带有main方法的类,那也没关系。只需要指定执行时首先执行的类。
java [起始类完全限定名称]
此外,您可以将类打包到多个jar文件中。请参阅
中的jar命令结构http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html
在此,您可以指定要打包到jar中的类。
2.看来您的包装结构没问题,无需更改。
3.异常处理取决于上下文。例如,如果它是已知的异常,并且如果要向用户发送消息,则更好地在类本身中处理它,但如果它是未知异常,则将其抛出并在main中处理它,您可能希望打印堆栈跟踪。 / p>
答案 1 :(得分:0)
当您提供代码(作为JAR)时,您需要确保仅将客户端代码提供给客户端。这可能意味着最好将其放在一个单独的模块中;我经常使用的一个技巧是将共享代码放在共享模块中(可能或可能是或可能不是内部的多个包),然后具有依赖于共享模块的独立客户端和服务器模块。像Maven这样的工具使这很容易做到。
永远不要一次在多个模块中定义包。这只是痛苦和困惑。