2 mars sakura mars_Sakura 于 2016.03.18 17:25 提问

javac,java命令的一些问题 10C

我的jdk是装在c盘,然后我在F盘建立了一个名叫TextJava目录,然后其中建立了两个java文件,一个是A.java一个是B.java,其中A调用了B,然后在命令行中进入了源文件在的目录,就是f:\TextJava,然后javac A.java结果提示我找不到B这个符号,我的classpath变量加了.,如果我用java -cp f:\TextJava A.java这个命令却可以,运行java A就对了,可是为什么不带-cp就不行?

4个回答

u014369169
u014369169   2016.03.18 17:48

-cp与-classpath是一样的,只是cp是简写而已啊。
如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指定的路径下查找引用类。

(1).绝对路径:javac -classpath c:/junit3.8.1/junit.jar Xxx.java
(2).相对路径:javac -classpath ../junit3.8.1/Junit.javr Xxx.java
(3).系统变量:javac -classpath %CLASSPATH% Xxx.java

mars_Sakura
mars_Sakura 我的.class与类是在同一个目录下,这个回答我在百度看到过,所以不好意思,不能采纳
一年多之前 回复
bealing
bealing   Rxr 2016.03.18 18:39

把A.java B.java文件中第一行的package都去掉,应该就OK了

bealing
bealing 好吧,那我也不清楚了,可能是java运行环境的问题,因为我测试的时候就是OK的,如果你搞定了,顺便也跟我说一下咯
一年多之前 回复
mars_Sakura
mars_Sakura 我没有使用package语句。。
一年多之前 回复
made_differ
made_differ   2016.03.18 19:00

先编译B.java。再编译A.java

mars_Sakura
mars_Sakura 试过了,不行。。
一年多之前 回复
zhengnan110
zhengnan110   2016.03.19 02:17

你的cmd窗口的当前目录进入了f:/testJava了吗?执行命令时所在文件夹如果没有类就只能通过cp去显式指定类路径了。不然系统也不知道去哪找。

mars_Sakura
mars_Sakura 指定了,可就是不行,只有加上-cp 被引用类的名字 类名.java 这样编译才行。。。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!