你好clarkie:
先看你的第一个解决办法,import 后应该接的是包(package)名,换句话说,如果你想用这个办法的话,你必须将类Threader.class另放在一个目录下,如d:\threader\ 下,然后在你的Classpath中加入"d:\;"这样你就可以通过在程序的开始加入import threader.*;或import threader.Threader;来使用Threader类了。注:这里的包名最好都用小写字母,这样符合习惯;
关于第二种方法,原理你可以参考以上解释。
我觉得你也可以不必采用以上方法。仅仅简单地在同一个目录下编译两个*.java文件,先编译Threader类,我认为应该能够成功的。因为java种默认的类具有friendly的特性,更何况你的Threader类是public的,你再试一试看看吧。
先看你的第一个解决办法,import 后应该接的是包(package)名,换句话说,如果你想用这个办法的话,你必须将类Threader.class另放在一个目录下,如d:\threader\ 下,然后在你的Classpath中加入"d:\;"这样你就可以通过在程序的开始加入import threader.*;或import threader.Threader;来使用Threader类了。注:这里的包名最好都用小写字母,这样符合习惯;
关于第二种方法,原理你可以参考以上解释。
我觉得你也可以不必采用以上方法。仅仅简单地在同一个目录下编译两个*.java文件,先编译Threader类,我认为应该能够成功的。因为java种默认的类具有friendly的特性,更何况你的Threader类是public的,你再试一试看看吧。
如果你的Class在两个文件中,那还是要加上package的,两个无名包间相互访问可能有问题
1。不打包的情况:加上".;"就可以了。这时你编译GreatRace.java的时候,javac自己会去编译Threader.java的。当然是从你的当前目录查找Threader.java文件,然后编译2。打包的情况:".;"还是要加的。Threader.java的包名对应的文件夹必须在GreatRace.java的相同目录下。原理同1一样,javac从GreatRace.java目录下开始寻找Threader.java
如果你打包的话,运行的时候还要注意一下
虚拟机能不能从当前目录下找到你要用的class
D:\>javac Myapplet\GreatRace.java
Myapplet\GreatRace.java:9: cannot resolve symbol
symbol : class Threader
location: class GreatRace
Threader theRacers[];
^
Note: Myapplet\GreatRace.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
1 errors
在MyApplet目录下直接编译也会出现同样的错误;在classpath中增加了d:\.还是会出现此类错误。2.我在编译JDK下的Demo文件(具体是c:\j2sdk1.4.1\demo\applets\WireFrame\ThreeD.java)时也会出现此类错误。
3.我在用腾迅Explorer执行含applet的.html时会出现“xxx class not found”的错误,但applet的背景确实是显示出来了的。
以上错误是否和我系统环境参数配置不全有关?
java虚拟机只是操作系统和用户应用程序间的包装的一层当运行java程序,也就是使用java.exe运行java应用程序的时候,使用虚拟机这种机制来实现跨平台,当然各个平台的虚拟机肯定是不一样的。这样的话,比如说,一个新的操作系统出来了,我们只要开发一个新的与这个系统配套的java虚拟机出来,一切用java写的代码都可以重新运行。看见jre文件夹里的一大堆dll了么?那就是构成java虚拟机的文件了。java标准类库里的一些类也就是用JNI来调用的
就是这个问题了,你改掉试试good luck
1.能否告诉我加".;"的含义?如果不能说,也请给个回复。
2.顺便请告诉一下如何修改帖子的分数(给帖子加分)?
若这两个问题有回复,即刻结帖。