关于从网络启动JAR文件,我遇到了一个小问题。我的情况是:
使用我的应用在服务器上共享网络目录。客户端正在从此网络位置运行JAR文件。除非有人失去与服务器的连接,否则一切正常。
当app(JAR)在客户端计算机上运行并且连接断开时,使用之前从未使用过的任何类,都会抛出NoClassDefFoundError异常。
我知道JVM在需要时会在运行时加载类。所以我的问题是:
我可以在启动应用程序之前以某种方式告诉JVM,将整个JAR(JAR中的所有类)加载到内存中吗? 我不能使用Class.for( “...”)或任何其他方式加载一个类,因为我“不知道”所有类。
我能以某种方式告诉JVM缓存JAR文件,即。到本地硬盘上的临时文件夹? 我不想让其他应用程序(JAR)从网络复制我的应用程序,然后启动它。
如果我还想让我的JAR在共享网络位置上,还有其他选择吗?:)