Vim:从vim命令运行java会导致错误

我编写了一个简单的hello world程序来测试JDK安装。 我可以使用Vim编译:

:!javac DesktopHelloWorld.java

这工作得很好,但是当我尝试运行该程序使用:

:!java DesktopHelloWorld

它给了我这个错误:

C: Windows system32 cmd.exe / c java“Desktop HelloWorld”线程“main”中的异常java.lang.NoClassDefFoundError:java.lang.ClassLoader.defineClass1中的Desktop HelloWorld(wong名称:HelloWorld)方法)在java.net.URLClassLoader.defineClass(未知源)上的java.security.SecureClassLoader.defineClass(未知源)java.lang.ClassLoader.defineClass(Unknown Source)at java.net.URLClassLoader.access $ 000(Unknown Source )在java.lang.ClassLoader.loadClass(Unknown Source)处的java.net.URLClassLoader.findClass(未知源代码)java.security.AccessController.doPrivileged(Native Method)处的java.net.URLClassLoader $ 1.run(未知源代码)在java.lang.ClassLoader.loadClassInternal(Unknown Source)处,sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)在java.lang.ClassLoader.loadClass(Unknown Source)找不到主类:Desktop HelloWorld。 程序将会退出。

该程序在正常的命令行中工作得很好。

C:UsersCaseyDesktop>java HelloWorld
Hello world!

我如何从Vim执行程序而无需切换到标准cmd?


java不会将文件名称作为其第一个非选项参数。 相反,它应该指定主类的名称(用.小号包名和类名之间,如果有比默认以外的任何包)。 使用-classpath指定从哪里加载类(使用与操作系统的目录分隔符( )分隔的目录)。

:!java -classpath Desktop HelloWorld

罪魁祸首是这条线:

java Desktop HelloWorld

你传递给“java”程序的论点是类名,而不是路径名。 如果该文件位于“Desktop.HelloWorld”包(“Desktop HelloWorld”目录)中,则需要使用以下命令执行它:

java Desktop.HelloWorld

(以上全部假设您位于“桌面”文件夹正上方的文件夹中)。


当你从命令行运行java时,你是否也运行java Desktop HelloWorld?

作为第一个建议,我会建议尝试运行以下内容,以便从相同的目录编译和执行您的程序:

:!cd桌面:!javac HelloWorld.java:!java HelloWorld

链接地址: http://www.djcxy.com/p/38873.html

上一篇: Vim: running java from vim command gives error

下一篇: Error on Web config on C#