如果我又class1.java和class2.java,并且我class1.java中还import了class2,它们都放在同一个文件夹里面,那么我在dos下该怎么编译?
å¨dosä¸ç¼è¯javaæ件ç¨javacå½ä»¤ï¼javacæ¯ç¨æ¥ç¼è¯.javaæ件çãå½ä»¤è¡ä¸ç´æ¥è¾å ¥javacå¯ä»¥çå°å¤§éæ示信æ¯ï¼æ示javacå½ä»¤çç¨æ³ï¼æåªç¥é常ç¨çã
javac -d destdir srcFile
å ¶ä¸ï¼1ã-d destdiræ¯ç¨æ¥æå®åæ¾ç¼è¯çæç.classæ件çè·¯å¾ãï¼è¥æ¤é项çç¥ï¼é£ä¹é»è®¤å¨å½åç®å½ä¸çæ.classæ件ï¼å¹¶ä¸æ²¡æçæå æ件夹ï¼å½åç®å½å¯ä»¥ç¨â.âæ¥è¡¨ç¤ºï¼å³ï¼javac -d . srcFile ï¼
注æï¼æ·»å -dé项é¤äºå¯ä»¥æå®ç¼è¯çæç.classæ件çè·¯å¾å¤ï¼æ大çåºå«æ¯å¯ä»¥å°æºæ件é¦è¡çpackageå ³é®åä¸çå åå¨å½åè·¯å¾ä¸çææ件夹ã
2ãsrcFileæ¯æºæ件.javaæ件çè·¯å¾ã
ä¾å¦ï¼æè¿æ ·ä¸ä¸ªç®åçjavaç±»ï¼è·¯å¾ä¸ºE:\test\JavacTest.javaï¼
package com.stopTalking.test;
public class JavacTest {
public static void main(String[] args) {
byte a = 5;
short b = 6;
System.out.println("JavacTest [a=" + a + ", b=" + b + "]");
}
}
å½åè·¯å¾ä¸ï¼è¾å ¥ javac JavacTest.java ,便å¨å½åè·¯å¾ä¸çæäºä¸ä¸ªJavacTest.classçæ件ï¼å¦å¾ï¼
不行
追答哦 直接 javac *.java 全部编译就行了, 你试试 ,绝对行
追问不行。
追答扯 我都试过了 ,你把你写的code贴出来
追问你看下面那个
追答import意思是导入其他包中的java文件,你弄一个import B,那么编译器,就会从根目录去需找B这个包,也就是B这个文件夹,但是B是一个类文件,然后就出错了呗;你可以把这两个类放到同一个文件夹下,比如test,然后你加入import test.B;这样在进入test文件夹下,执行javac *.java,然后就行了。注意:在如果是放在test文件夹下,上面要加上 package test;不然会出错;因为package相当于目录
追问如果类A和B在同一个文件夹下我就不能写import test.B,不过我觉得你的解释还是很有道理的,我看看没别的答案我就给你满意了。
追答比如在D:/test文件夹下建类A.java B.java
------------------------------
package test;
import test.B;
public class A{
public static void main(String[] args){
B b=new B();
b.show();
}
}
-------------------------
package test;
public class B
{
public void show(){
System.out.println("hello world");
}
}
---------------------------
编译时进入D;/test下:javac *.java;
运行时进入D盘:(注意进入的是D盘,而不是d:/test,因为程序中有package test;这个指令)
java test.A;
好好理解一下package和import作用;
还有,你以为我回答你问题就是要你分的吗?
class1.java:8:错误:需要'.'
import class2
class1.java:8:错误:需要';'
import class2
语法错误吧。提示没加分号。