16

我一定是在做一些愚蠢的事情,因为这看起来很简单。出于某种原因,我无法让这个命令为我工作。我已经安装了JDK,我进入

/bin

文件夹。我输入:

./javap -classpath /home/Matt/workspace/VariablesTestProject/src/ -s VariablesTest.Variable

我的类的实际文件路径是

/home/Matt/workspace/VariablesTestProject/src/VariablesTest/Variable.java

我回来的错误是:

ERROR:Could not find VariablesTest.Variable

然而,像这样的命令有效:

./javap -s java.lang.String

这些不是我尝试过的唯一命令。我确实尝试了我能想到的所有变化,但没有一个起作用。我的 javac 和 java 命令都可以正常工作。

有什么建议么?

4

5 回答 5

13

Javap 对.class字节码起作用。所以将类路径指向VariablesTestProject/out或其他。

于 2012-07-11T17:53:16.683 回答
3

如果要使用 javap 命令执行操作,请先在 cmd 提示符下进入 jar 位置。

例如:

cd /usr/lib/jvm/java-6-openjdk-i386/jre/lib(Linux)

cd D:\javasoftware\Java\jdk1.6.0_43\jre\lib(视窗)

以上位置是 rt.jar 位置。java.lang.String 是这个 jar 中的类之一。

使用 javap 您可以从此类中获取信息。

例如:

cd /usr/lib/jvm/java-6-openjdk-i386/jre/lib
javap java.lang.String 
于 2013-04-02T10:00:52.027 回答
3

我发现最近使用 javap 是检查哪个版本的 JDK 在 Windows 上编译了特定的类文件:

javap -v path to .class file | findstr major

这将为您提供主要版本号:

50-JDK6、51-JDK7、52-JDK8、53-JDK9。

于 2018-10-01T15:10:56.393 回答
0

javap是用于查看内置类/用户定义类/接口/抽象类的 java 配置文件/方法声明的命令。

-> 如果您想查看预定义类的方法,那么如果您安装了 jdk,则在此路径C:\Program Files\Java\jre1.8.0_171\librt.jar

-> 在某个文件夹 D:\rt 中提取该 rt.jar 文件,然后转到此文件夹并键入 javap java.util.collectionorjavap java.lang.*或任何其他预定义的包以查看方法。

-> 如果您想查看用户定义的类方法,请转到工作空间\javaproject\specificpackage\bin,然后键入javap classname ,您可以看到所有方法声明。

于 2018-07-12T18:12:26.687 回答
0

我将用简单的话来理解Java中Javap命令的使用。

  • javap命令是一个工具,或者你可以说它是可以读取类文件的 dissembler。

我有如下示例 java 程序。

class Bank {
   private int code = 210;

   class SBI {
       void display() {
           System.out.println("Code is "+code);
       }
   }

   public static void main(String args[]){
       Bank b = new Bank();
       Bank.SBI sbi = b.new SBI();
       sbi.display();
   }
}

编译后我得到了 Bank.class 文件。接下来我的朋友 Subbu 和 Narasimha 向我询问源文件的编译版本。稍后他们想看看 vikram 实际使用的是什么然后他们将使用以下命令查看基本细节,如使用的方法在这个 Bank.class 文件中。

C:\ >javap Bank.class
Compiled from "Bank.java"
class Bank {
  Bank();
  public static void main(java.lang.String[]);
  static int access$000(Bank);
}

java 有非常酷的工具来检查许多特性,其中很少有像 javaws 那样的特性。jconsolejavawsjmapjhatjinfo

于 2018-01-13T19:12:27.767 回答