我正在构建一个Java网络应用程序,并且希望能够为没有2台计算机的用户演示网络功能(通过localhost)。
我想知道是否有办法,可能通过再次调用main方法,创建另一个Java应用程序实例。这不仅仅是JFrame的另一个实例,因为网络功能无法正常运行。
示例场景:用户点击“演示模式”,然后应用创建第二个实例,然后用户可以通过localhost测试网络连接。
有没有办法实现这个目标?
答案 0 :(得分:2)
即使没有两台计算机,您至少应该运行两次应用程序(在同一台计算机上),而不是使用使用相同JVM的特殊“演示模式”。
您可能需要做的就是添加一些配置,这样它们就不会互相干扰(例如配置服务器套接字端口或本地磁盘文件位置)。
另一个(只有稍微多一点,一旦你掌握了它)选项是使用虚拟机(如VirtualBox)假冒两台实际的计算机之间有网络连接。
答案 1 :(得分:1)
杰克,
如果您无法通过同时运行程序的两个实例来完成此操作,是否可以尝试在计算机上运行虚拟机?尝试按原样在桌面上运行程序,然后在具有Java的虚拟机中再次运行它。
如果只是简单的程序,将JVM堆叠在另一个虚拟机之上应该不是什么大问题。但是,如果它是一个资源匮乏的计划,我不会指望它的性能。
编辑:我更喜欢VirtualBox https://www.virtualbox.org/答案 2 :(得分:1)
您可以创建一个与main完全相同的方法,并调用该方法两次。或者您可以使用在单独的JVM上运行相同的程序。