2013-12-19 50 views
2

我创建了一个非常简单的类Test.java命令javap不区分大小写?

import java.util.*; 

public class Test { 
    public static void main(String[] args) { 
    String[] stringArr = new String[10]; 
     Object[] objs = stringArr; 

     objs[0] = 1; 

     System.out.println(objs[0]); 
    } 
} 

,所以我可以用javac Test,在那之后,我想用javap commond看到测试类的内部细节编译它,但实际上我做了一个错误如下:

D:\>javap -private TEst 
Compiled from "Test.java" 
public class Test extends java.lang.Object{  
public Test(); 
    public static void main(java.lang.String[]); 
} 

正如你看到的,我javap的命令后键入TEst,但实际上该命令显示类的信息,在那之后我累使用javap -private TEST,它也在努力。

是否意味着javap不区分大小写?

注:
我的JDK版本是:

java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)

回答

4

“是否意味着javap不区分大小写?”。这不是关于javap ..它关于你使用这些命令的cmd提示符。cmd提示符是不区分大小写的......你可以做cd ..或者CD ..或者cD ..他们都做同样的事情。

+1

但如果我尝试使用'java TEst'来运行确切的类,我得到一个错误:“线程中的异常”main“java.lang .NoClassDefFoundError:TEst(错误的名称:测试)“ –

+0

你有一个测试类...(我假设你正在使用Windows ..)..如果测试类存在于你当前所在的位置,那么情况应该没有关系..给出类的确切名称,并尝试..你可能会得到相同的错误..因为这个类不存在...你有编译它吗?..是否在你的目录中? (或者你是否使用了正确的absoulte路径?) – TheLostMind

+0

在我的文件夹中只有Test.java和Test.class两个文件。而我刚刚在Linux(ubuntu)中进行了测试,在linux中,出现错误“ERROR:Could not find TEst”,可能这是因为windows,但为什么'java'命令和'javap'命令有不同的行为? –

2

Windows文件系统是 “友好的情况下”;它会尝试一个不敏感的搜索。文件中的类名是。请注意,javap Compiled from "Test.java"

0

当我试图编译一个程序,对文件名进行轻微的大小写更改时,我收到了类似的错误消息。我 事实证明,@TheLostMind是正确的..,谢谢你先生