当前位置: 技术问答>java相关
为什么加上package就不行?
来源: 互联网 发布时间:2015-04-22
本文导语: jdk目录:d:jdk server.java 路径:d:javahostserver.java /* server.java */ package host; public class server { public server() { System.out.println("server up"); } public static void main(String[] args) { server server1 = new server(); ...
jdk目录:d:jdk
server.java 路径:d:javahostserver.java
/* server.java */
package host;
public class server {
public server() {
System.out.println("server up");
}
public static void main(String[] args) {
server server1 = new server();
}
}
我做了
set path=d:jdkbin
set classpath=.;d:java;d:jdklib; /* 等等 */
然后我在d:javahost下
javac server.java
通过
但是
java server
就出如下异常
Exception in thread "main" java.lang.NoClassDefFoundError: server (wrong name: h
ost/server)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
如果我去掉package host
javac server.java
java server
通过
不知为什么,请指教!
server.java 路径:d:javahostserver.java
/* server.java */
package host;
public class server {
public server() {
System.out.println("server up");
}
public static void main(String[] args) {
server server1 = new server();
}
}
我做了
set path=d:jdkbin
set classpath=.;d:java;d:jdklib; /* 等等 */
然后我在d:javahost下
javac server.java
通过
但是
java server
就出如下异常
Exception in thread "main" java.lang.NoClassDefFoundError: server (wrong name: h
ost/server)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
如果我去掉package host
javac server.java
java server
通过
不知为什么,请指教!
|
在C:tmp>建立host目录,将server,java防到host目录
C:tmp>cd host
C:tmphost>javac server.java
C:tmphost>cd ..
C:tmp>java host.server
server up
C:tmp>
C:tmp>cd host
C:tmphost>javac server.java
C:tmphost>cd ..
C:tmp>java host.server
server up
C:tmp>
|
一般而言java文件和class文件是应该放在不同目录下的,拿这个问题为例,你可以
1.在D:java下创建两个目录:D:javasrc, D:javaclasses
2.如果你是在D:javasrc下对java文件进行编译,则javac -d ..classes Server.java, 这条命令会在D:javaclasses目录下生成一Server.class文件
3.将D:javaclasses设置进classpath
4.运行则java host.Server即可
1.在D:java下创建两个目录:D:javasrc, D:javaclasses
2.如果你是在D:javasrc下对java文件进行编译,则javac -d ..classes Server.java, 这条命令会在D:javaclasses目录下生成一Server.class文件
3.将D:javaclasses设置进classpath
4.运行则java host.Server即可
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。