Получить доступные функции / методы пакета Java в C # - PullRequest
2 голосов
/ 28 января 2011

Я хочу знать, возможно ли получить классы, функции / методы, доступные в пакете Java из C #. Предположим, у меня есть пакет Java, который содержит SampleClass. Я хочу проверить этот пакет из C #, чтобы я мог получить SampleClass. Я не хочу использовать этот класс в C #, на самом деле я просто хочу получить имя доступных классов и функций.

Надеюсь, что это возможно!

Спасибо

Ответы [ 2 ]

4 голосов
/ 28 января 2011

Предполагая, что у вас установлен 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 {};
}
1 голос
/ 28 января 2011

Если вы спрашиваете о файлах Jar. Это просто почтовый файл.

Вы можете сопоставить папки и файлы с именами классов следующим образом: "/java/lang/Object.class" -> "java.lang.Object".

В этой записи вы можете прочитать о выводе содержимого папки .zip в c #.

Преимущество этого метода в том, что вам не нужно беспокоиться об установке JDK, но если вы планируете что-то сложное, например, список методов, которые я бы выбрал для решения, предложенного @Jesse Barnum.

...