我有一个程序我已经编写并变成了一个 jar 文件。jar 文件在我的计算机上运行良好。当我尝试在将要运行的服务器上运行程序时,jar 文件不起作用。我得到这个错误。
Exception in thread "main" java.lang.NoClassDefFoundError: Publish
Caused by: java.lang.ClassNotFoundException: Publish
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Publish. Program will exit.
我认为这个问题是由不同版本的java或不同的环境引起的。我认为库不是这里的问题,而是运行该程序的环境。jar 文件在我自己的计算机上完美运行。
我的 java 版本 java 版本 "1.6.0_22" Java(TM) SE Runtime Environment (build 1.6.0_22-b04) Java HotSpot(TM) Client VM (build 17.1-b03, 混合模式, 共享)
服务器 java 版本 java 版本 "1.6.0_24" Java(TM) SE Runtime Environment (build 1.6.0_24-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, 混合模式)
我也收到此错误,这表明我可能有一个 32 位 java 而服务器有一个 64 位,这可能会导致问题。
VM 初始化期间发生错误无法为对象堆保留足够的空间
我只需分配一些内存来运行此进程即可轻松解决此错误。
有谁知道如何解决这个问题?
注意:我还查看了清单文件,看起来不错