C# 获取C语言中java包的可用函数/方法#

C# 获取C语言中java包的可用函数/方法#,c#,java,packages,C#,Java,Packages,我想知道是否有可能从C#获得java包中可用的类、函数/方法。假设我有一个包含SampleClass的java包p。我想从C#检查这个包,这样我就可以得到SampleClass了。我不想在C#中使用这个类,事实上我只想得到可用类和函数的名称 希望这是可能的 如果您想了解Jar文件,请多谢。它只是一个zip文件 您可以将文件夹和文件映射到类名,如:“/java/lang/Object.class”->“java.lang.Object” 在文章中,您可以阅读关于在c#中列出.zip文件夹内容的内容

我想知道是否有可能从C#获得java包中可用的类、函数/方法。假设我有一个包含SampleClass的java包p。我想从C#检查这个包,这样我就可以得到SampleClass了。我不想在C#中使用这个类,事实上我只想得到可用类和函数的名称

希望这是可能的


如果您想了解Jar文件,请多谢。它只是一个zip文件

您可以将文件夹和文件映射到类名,如:“/java/lang/Object.class”->“java.lang.Object”

在文章中,您可以阅读关于在c#中列出.zip文件夹内容的内容


这种方法的优点是,您不需要担心JDK的安装,但是如果您正在计划任何复杂的事情,例如方法列表,我会选择@Jesse Barnum提出的解决方案。

假设您安装了JDK,您可以使用'jar-tf jarName.jar'获得类列表,然后您可以解析这些类

要获得有关特定类的更多信息,可以使用命令行“javap”实用程序打印出所有方法和字段的列表。这是一种相当容易解析的格式。例如:

javap -classpath . com.prosc.io.ZipCreator
Compiled from "ZipCreator.java"
public class com.prosc.io.ZipCreator extends java.lang.Object{
    public com.prosc.io.ZipCreator();
    public java.lang.Integer getLevel();
    public void setLevel(java.lang.Integer);
    public void createZip(java.io.File, java.io.File)       throws java.io.IOException;
    public void createZip(java.io.File, java.util.zip.ZipOutputStream)       throws java.io.IOException;
    public void setMaximumZipSize(long);
    static {};
}

你说的“Java包”是指jar文件吗?是的“Java包”->jar文件。当我使用javap时,它给了我一个错误——错误是找不到layoutlib。我的jar文件放在d:\javaproject\中,我在同一个目录中使用javap,如:d:\javaproject>javap layoutlib.jar如果不将jar文件的名称传递给javap,则传递jar中包含的类的名称。使用'jar-tf jarName.jar'获取类列表。假设你在里面看到一个名为/my/cool/Button.class的类。使用“javap-classpath jarName.jarmy.cool.Button”查看函数列表。