日期:2014-05-20  浏览次数:20754 次

击球高手啊,关于package的问题。。。
/*
需求:使用不同包中的类,熟悉包的使用,并使用import导入包;
思路:
步骤:
*/
package packagetest;
public class DemoA
{
public void show()
{
System.out.println("demoa show run");
}
}
编译这个文件的时候报的错是:

D:\javaprog\803>javac -d . PackageTest.java
PackageTest.java:7: 错误: 类DemoA是公共的, 应在名为 DemoA.java 的文件中声明
public class DemoA
  ^
1 个错误
明明是public了还怎么声明啊???
下面的是使用它的包
package packagetest2;
import packagetest;
class PackageTest2
{
public static void main(String []args)
{
DemoA da=new DemoA();
da.show();
}
}
击球高手啊。。。。

------解决方案--------------------
PackageTest2的编译依赖DemoA的编译,所以不推荐使用 手动的javac编译,用eclipse这种IDE帮助你编译效率高,学习用javac编译个HelloWorld就行了,一旦有依赖关系就麻烦很多
------解决方案--------------------

 兄弟,首先我们来确定一个事情,其实在Java里的夹包,就是window中的文件。

 D:\javaprog\803>javac -d . PackageTest.java 你并没有找到当前文件夹下面你些的Java类,而是直接把夹包当作Java类在那里运行,故此你编译都不通过!

第一步,在你的盘符下面,建立一个packagetest文件,在DemoA.java放入到packagetest文件中,这样和你些的Java类中声明的夹包和类相符了!

package packagetest;文件夹
public class DemoA Java类

D:\javaprog\803>javac packagetest/DemoA.java 编译执行

第二点:我支持2楼兄弟的回答


------解决方案--------------------
先编译DemoA,然后编译PackageTest2,确保DemoA.class所在的packagetest包在classpath下。