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

菜鸟问概念问题,朋友帮帮忙。我会很快结帖的。
线程中同步是不是就是加锁的意思?如何才能判断一个对象拥有另一个对象的锁?
请高手举例说明,谢谢啦。


------解决方案--------------------
你的问题我来回答吧。我用了2天硬啃出的结果。希望对你有点帮助。呵呵。以下是分层目录,分别放了你的.java文件。我们需要进行编译。编译的过程在下面。如果看不懂的话,可以加我的QQ讨论。


PackageTest
|
|__source Main.java
|
|__pktest PackageTest.java PackageSecond.java
|
|__subpk PackageSub.java

这个包有3层目录。在每个类文件内需要指明包的名字,然后需要把每个.java文件放在相应名字的目录下,然后在source目录进行编译。命令为javac Main.java,这样每个目录下的.java文件都可以被编译为.class文件了。但pktest下面的那个PackageTest.java没有被自动编译。所以需要单独编译一下。命令为在source目录下打入javac -classpath e:\PackageTest\source\pktest;e:\PackageTest\source\pktest\subpk;. .\pktest\PackageTest.java

或者使用相对路径:javac -classpath pktest;pktest\subpk;. pktest\PackageTest.java

编译成功。然后在source目录下打入java pktest.PackageTest即可正确运行程序了。

另外需要检查每个main()函数里面是否缺少String[] args这个残数。否则出错。

在某个类文件所在的目录进行编译包的话,如果该文件内import了子目录里面的类,则总是出错。比如在e:\PackageTest\source\pktest> 目录内对里面的PackageTest.java进行编译,输入命令:
javac -classpath subpk;. PackageTest.java
则出错信息如下:pktest.subpk 不存在。
说明“该文件在编译的时候要到相应的包里面引用有关类。结果从当前目录开始算起,没有所谓的pktest.subpk目录。因此编译失败。所以这样的分层包的编译,需要在包含 "包 "的上级目录进行编译,也即在e:\PackageTest\source> 内进行编译。
输入javac -classpath pktest;pktest\subpk;. pktest\PackageTest.java。

青岛大学王刚
qduwg@163.com
qq:491625507
2007-3-19上午9:20