2017-08-05 51 views
-1

是什么以下三个命令之间的差异: - )javac -cp "." com.company.Test.class命令提示符快捷区别“。”和 “../ ..”

2)javac -cp "../.." com.company.Test.class

3)javac com.company.Test.class

另外

1,是有每个命令对于javac和java的任何区别,我的意思是如果我为javac和java命令使用1个语句,那么是否有任何区别。

+0

你是什么意思你的第二个问题?你可以重新解释它还是更多地解释它?这听起来像是你要求'javac.exe'和'java.exe'之间的区别。第一个编译java代码并从中产生字节代码,'.class'文件。第二个执行字节码。 – Zabuza

+0

我的意思是说,如果我使用“。”,是否有任何区别。命令与javac和java Javac“。” test.java Java“。” com.company.Test –

+0

我很抱歉,但我仍然不明白。然而,在你已经收到了很好的答案之后,还有什么还没有答案?如果是这样,请编辑您的问题(而不是发表评论)。 – Zabuza

回答

1

编译: -

案例1: - 编译一个程序/ java文件: -

计划: -

package com.bharat; 

    class Test{ 
static int x =10; 
public static void main(String[] args) 
{ 

    System.out.println(x+" "+"Class Test"); 
} 

} 

目录: -

C:/ COM/bharat

命令: -

1)C:\com\bharat>javac Test.java 

2)C:>\javac -cp “.” com/bharat/Test.java 

3)C:>\javac -cp “../..” com/bharat/Test.java 

CASE 2: - 两个方案,第二程序使用第一程序的目的: -

程序1: -

package com.bharat; 

class Test{ 
static int x =10; 
public static void main(String[] args) 
{ 
     System.out.println(x+" "+"Class Test"); 
} 

} 

计划2: -

package com.bharat; 

class Test2{ 

public static void main(String[] args) 
{ 

    System.out.println(Test.x+" "+"Class Test2"); 
} 

} 

指南: - C:/ com/bharat

命令: -

1)C:/com/bharat>javac -cp “.” *.java 
2)C:/com/bharat>javac -cp “../..” *.java 
3)C:/com/bharat>javac Test.java 
4)C:/com/bharat>javac Test2.java 

: - 错误: -

找不到符号Test.x因为它搜索在COM /巴拉特/ COM/X巴拉特

5)C:/ COM /巴拉特> javac的 - CP Test2.java“” - 错误: -

找不到符号Test.x因为它搜索在COM /巴拉特/ COM/X巴拉特

6)C:/ COM /巴拉特> javac的 - cp“../ ..”Test2。java的

做工精细因为现在因为“../ ..”它的根目录下搜索X(C :)即C:/ COM /巴拉特

7)C:\>javac -cp "." com/bharat/test2.java 
8)C:\>javac -cp "../.." com/bharat/test2.java 

运行: -

1)C:\com\bharat>java -cp "." com.bharat.Test -   Error 
2)C:\com\bharat>java -cp "../.." com.bharat.Test 
3)C:\com\bharat>java -cp "." com.bharat.Test2 -    Error 
4)C:\com\bharat>java -cp "../.." com.bharat.Test2 
5)C:\>java com.bharat.Test 
6)C:\>java com.bharat.Test2 
7)C:\>java -cp "." com.bharat.Test 
8)C:\>java -cp "." com.bharat.Test2 
9)C:\>java -cp "../.." com.bharat.Test2 
10)C:\>java -cp "../.." com.bharat.Test 

案例3: - 编译和运行两个程序使用不同的软件包: -

地点: -

计划: -

1)

package comm.Pack1; 

public class Test{ 
public static int x =10; 
public static void main(String[] args) 
{ 

    System.out.println(x+" "+"Class Test"); 
} 

} 

2)

package comm.Pack2; 
import comm.Pack1.Test; 
class Test2{ 

public static void main(String[] args) 
{ 

    System.out.println(Test.x+" "+"Class Test2"); 
} 

} 
4

1)"."表示当前文件夹,因此的javac会发现在当前文件夹com.company.Test.class

2)".."表示父文件夹,"../.."表示当前文件夹的父文件夹的父文件夹。

3)javac无-cp表示在当前文件夹中找到文件。等于1)

+0

真是一个惊喜!感谢兄弟,Zabuza。 – autogo

+0

让我们延长答案。 'javac'是一个需要参数的程序。在你的情况下,OP,你首先使用参数'-cp'代表* classpath *。这个'-cp'命令现在也需要一个参数,一个类路径应该设置到的路径。在你的情况下,这正是''。“'的东西。 '-cp'完成后,'javac'的下一个参数出现,这就是你想要编译的*源文件*。官方文档可以在这里找到:http://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html – Zabuza

+0

还要注意'java'程序的语法与' javac'。其文档位于:http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html。请注意,这个''''''和'“../ ..”'东西不是来自** Java **语言的东西。这是来自你的**操作系统**(或者更确切地说,你使用的shell,例如Windows ** cmd **)。 – Zabuza

相关问题