classpath,package,jar的问题.

wwzhong1 2004-08-03 03:14:30
初学java,希望高手提示一下.

文件一:d:\java\SayHello.java

package ake.wwz.www;

public class SayHello{
public void sayMessage(){
System.out.println("my name wwz!");
}
}

文件二:d:\java\Hello.java

import ake.wwz.www.SayHello;
public class Hello{
public static void main(String[] args){
//System.out.println("hello");
SayHello sh = new SayHello();
sh.sayMessage();
}
}

用jcreater写了以上两个.编译并运行---通过.

现在我将文件一生成的目录ake打包成ake.jar后.删除ake目录.则运行文件二时出错说.类文件找不到.

高手们帮帮我吧.先谢了.
...全文
170 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
registered 2004-08-03
  • 打赏
  • 举报
回复
java -cp 的话, 系统环境变量里的 classpath 就被覆盖了
rainworm 2004-08-03
  • 打赏
  • 举报
回复
呵呵,环境变量生效有时候需要一点点时间的
最好还是重启下机器比较稳妥
wwzhong1 2004-08-03
  • 打赏
  • 举报
回复
火大,机器重启一下.java Hello也行了.真是搞不懂她的脾气.
wwzhong1 2004-08-03
  • 打赏
  • 举报
回复
谢谢各们的帮忙!

按registered(已注册) 的方法:java -cp .;ake.jar Hello通过.但为什么先前的没带"."当前目录的命令:java -cp ake.jar Hello却提示找不到类.我先前在classpath里也设置过".;d:\java\ake.jar"也不行.是不是我的classpath没起作用呀?
jimoren 2004-08-03
  • 打赏
  • 举报
回复
已好
registered 2004-08-03
  • 打赏
  • 举报
回复
如果你只是将 ake 及其子目录打包
而未将 Hello.class 打包的话
如此运行:

java -cp .;(ake.jar的路径) Hello
registered 2004-08-03
  • 打赏
  • 举报
回复
sorry上面看错

你打包应该按照包(目录)结构打
ake.wwz.www 代表 ake\wwz\www
首先建立上面的目录结构
将 SayHello.class 放在 ake\wwz\www\ 下面
将 Hello.class 放在 ake 目录的同级目录下
然后在 ake 的同级目录打包
运行时输入:
java -cp ake.jar Hello
zzhangwa 2004-08-03
  • 打赏
  • 举报
回复
java -classpath "ake.jar" Hello(ake.jar与Hello.class在同一目录下)
或者将你的ake.jar加入windows系统的classpath中去
registered 2004-08-03
  • 打赏
  • 举报
回复
java -cp ake.jar ake.wwz.www.SayHello
wwzhong1 2004-08-03
  • 打赏
  • 举报
回复
各位给我一点提示吧.

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧