首先是 package的问题,看以下代码!
package com.ppp;
public class pop
{
public static void rint(String s)
{
System.out.print(s);
}
public static void rintln(String s)
{
System.out.println(s);
}
}
我用javac执行的时候编译过去了,可是我在那里也找不到com\ppp这两个文件夹,正常来讲应该是在classpath目录里的这些文件夹下,可没有啊
我在jcreact编译则在当前目录生成了这个文件夹。我将这个文件夹做成了ming.jar,也把他放到了classpath路径里的了,以下为classpath路径.;
C:\ProgramFiles\Java\jdk1.5.0_03\lib\tools.jar;C:\ProgramFiles\Java\jdk1.5.0_03\lib\dt.jar;E:\java tools\ming.jar
可是当我又建新类以下代码
import com.ppp.pop;
public class Text
{
public static void main(String[] a)
{
pop p = new pop();

}
}
编译不过,说找不到com.ppp这个包。
在打包应用这方面谁能给我好好地讲一讲啊。先在这里谢了。

解决方案 »

  1.   

    ming.jar这个JAR包文件路径是社么 是com.ppp这样打包的?
      

  2.   

    对是这com.ppp样打地包。还有就是我想直接把.class打成jar,这样还用import导入吗??
      

  3.   

    在java的编程中,包是一个非常重要的概念.它是用来字节码文件的管理.包名是由文件的层次结构组成.例如:p.p1.p2.p3 事先我们在classpath设置一个基准类路径.包名就是相对它存在,假设classpath=E:\practice,在它下有一个文件夹p,p下包含p1,p1下包含p2,p2下包含p3.当我们定义java源文件时,在文件的最前面(第一行)可以有package语句(只能有一条这样的语句),它的作用,可以在声明的包(文件的层次结构)生成相应的字节码文件.java虚拟机装载类时,它是沿classpath环境变量指定的路径中逐一查找,加载最先找的的.import表示声明,表示此类中需要,引入的类.包可以用真实的文件的层次结构组成,也可以使用jar机制.
    (java虚拟机会在内存中,自动解压,形成文件的层次结构)
    1 真实的文件的层次结构组成(编译可自动生成)
      在指定的classpath 下编译java源文件 javac -d BaseClassPath<.> Name.java
      这样就会在BaseClassPath<.>基础上,将编译后的class文件放在相应的位置.
      运行一定要记住使用java 包路径.类名.(编译是不强调大小写,但编译后,运行的类名一定要和类文件名
       一样,区分大小写,这个大小写问题我反复遇到.没有掌握实质)2 使用jar(Java Archive File)机制
      1)在windows下生成jar文件
        当然经过编译后,包的真实的文件的层次结构一存在.只需右健选择添加到压缩文件,修改压缩文件名name.jar(jar与zip压缩文件兼容,选zip,把name.zip该为name.jar.当时我在rar基础上该为jar,结果不行),点击确定就生成了,name.jar,此时需要在classpath加入jar路径.(对jar文件解压,右健选择解压到当前文件夹.其它会多一层结构)
      2)在ms-dos 下使用jar.exe
        进入classpath基目录 jar cvf p.jar p(p.jar要生成的jar文件,p是目录名)
        a jar cf p.jar p 生成p.jar,如果当前存在则覆盖.
        b jar cvf p.jar p 带v参数,将显示打包的详细信息
        c jar tf p.jar 显示jar文件中包含的目录的文件名列表
        d jar tvf p.jar 除上述之外,显示一些细节
        e jar xf p.jar  解压p.jar到当前目录
        f jar xvf p.jar 解压带有一些详细信息
        g 重定向 jar tvf p.jar > 路径\filename.txt
      

  4.   

    必须要到包的上一层目录执行,在你的程序里也就是要到com的上一层目录去执行
    你编译时可以用javac -d . pop.java  (在当前目录生成包)
      javac -d e:\program pop.java       (在指定目录生成包)
      

  5.   

    那我看我用Swing,等类的时候也没有到上层去调用啊,怎么自己建地JAR就得到上层去调用,
      

  6.   

    包的问题我已经明白了,包应该是在子目录之下的。
    现在就是JAR的问题,我已将相应地.class文件打成JAR了。可就是一导入的时候说软件包不存在,这是怎么回事啊。