36 java cmd class javac package
当我.class参与其中package并尝试从cmd运行它时,我不断收到错误.
这是使用后使用的代码,javac然后是java:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
然后代码不起作用:
package com;
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
尝试通过命令运行程序后给我这个错误java HelloWorld::
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam
e: com/HelloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的尝试:
java -cp . HelloWorld
java -cp . com.HelloWorld
java -cp . com/HelloWorld
java HelloWorld
java com.HelloWorld
java com/HelloWorld
Run Code Online (Sandbox Code Playgroud)
请记住,javac返回没有错误,只需删除即可package com;解决问题.有时在其他情况下,我会收到一条错误消息,指出无法找到主类文件或其他内容.
我究竟做错了什么?
sgb*_*gbj 32
假设你做了cd C:/projects并且HelloWorld.class进入C:/projects/com,那么只需键入:
java com.HelloWorld
Run Code Online (Sandbox Code Playgroud)
Mad*_*mer 14
包与文件的预期目录位置直接相关.
也就是说,如果你有一个包含package指令的源文件com,那么该文件应该存在于该com目录中.
在您的HelloWorld示例中,预计HelloWorld.java文件将存储在com目录中,如com\HelloWorld.java
编译文件时,它将创建一个HelloWorld.class在com目录中调用的类文件,如com\HelloWorld.class
这样,当Java去寻找com.HelloWorld类时,它实际上会搜索它的类路径并附com\HelloWorld.class加到它,直到它找到你的类文件或用完类路径
例
所以,我将你的HelloWorld.java(带包)示例复制到了C:\java\com\HelloWord.java
从命令行,我切换到C:\java目录...
C:\java>dir com
Volume in drive C is OS
Volume Serial Number is ####-####
Directory of C:\java\com
09/08/2013 01:55 PM <DIR> .
09/08/2013 01:55 PM <DIR> ..
09/08/2013 01:55 PM 135 HelloWorld.java
Run Code Online (Sandbox Code Playgroud)
然后我编译了 HelloWorld.java
C:\java>javac com\HelloWorld.java
Run Code Online (Sandbox Code Playgroud)
然后我跑了...
C:\java>java com.HelloWorld
Hello World!
Run Code Online (Sandbox Code Playgroud)
您可能希望阅读包教程
| 归档时间: |
|
| 查看次数: |
67447 次 |
| 最近记录: |