当前位置:  技术问答>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
通过
不知为什么,请指教!

|
在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>

|
一般而言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即可

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 问问:linux内核里面总是有几乎同名的函数,只不过有的前面加上了__,或者_;或者是在后面加上__,或者_
  • 怎样在树形节点上加上setToolTipText()?
  • 执行当前目录下可执行程序时前面必须要加上./才可以,如何解决?
  • ######################怎样在树形节点上加上setToolTipText()?
  • 想在JTree的一些节点左边加上复选框
  • hp unix: shell 或 AWK 怎样给一行文本记录加上回车换行符呀(rn) ?
  • 请问: 由于安装linux下装了一些软件,用什么命令可以再加上啊?
  • 刚发现CSDN竟然加上了.NET的后缀。
  • 为什么执行文件的时候一定要加上“./”
  • jcreator25中如何加上参数进行编译
  • 急救~!请问在字符串后面怎么加上回车,换行??
  • Makefile 加上了.PHONY: clear怎么还删不掉生成的中间文件? 谢先!
  • 刚装的solaris的root用户没有ftp权限不知道怎么给它加上?急!
  • 如何给软件加上license
  • 为何samba共享的文件在windows端编辑后会加上可执行的属性?
  • 编写脚本:怎样在vmstat 1产生的结果中,在每行前面加上当前时间
  • 在Unix系统中如何给vi加上行号
  • 加上刚才80分,一共180分,就这么个问题,怎么就没人回答呢!(在线等待)
  • 请问哪些情况必须在数值的后面加上字符'L'或'l'?
  • 输入RedHat9的Ifconfig命令为什么要加上路径


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3