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