2016-12-08 5 views
0

Мне удалось получить образцы проектов для JNI4NET tool, работая путем создания некоторых классов прокси-класса Java с программой ProxyGen.exe, поставляемой вместе с ней.JNI4NET Proxygen не может загрузить/найти Java-класс в простой библиотеке классов Java?

Теперь я пытаюсь перевести этот рабочий образец в небольшой тест. До сих пор я создал простой Java-класс и скомпилировал его в jar-файл библиотеки Java-классов. Я сделал это в Netbeans, используя платформу Java 1.7.

Класс ниже

public class Person 
{ 
    public String GetName() 
    { 
     return "Nobody"; 
    } 
} 

Выход из ProxyGen просто заявляет

Невозможно загрузить класс Person

Судя по выходу, я должен предположить, что ProxyGen имеет прочитайте банку и узнайте класс Person, но, как говорится, «не может загрузить его». Который я не совсем уверен, что это означает или как его неудача.

Я чувствую, что мне нужно предоставить файл .class/.java в ProxyGen, хотя это не сделано в образце (который работает). Так что, возможно, этот вопрос связан с тем, как скомпилирована банка? Что опять не имеет смысла, поскольку, насколько я понимаю, вы можете просто распаковать файлы jar для просмотра исходных классов? ..

Любые идеи?

ответ

1

Возможно, ваш JAVA_HOME указывает на JRE старше 1.7. Это используется proxygen.exe. Старая JVM не могла прочитать файлы .class? Просто догадайся.

+0

Я проверю, чтобы убедиться, но мне действительно нужно было установить JAVA_HOME, когда я начал работать над этим. Но я мог бы установить его на более старую версию Java 7. – KDecker

+0

Я подтвердил, что тестовая банка скомпилирована под номером 1.8 и что версия, сообщенная с помощью java -version, также является версией 1.8. Я заметил, что для последней версии ProxyGen может потребоваться 1.5, можете ли вы подтвердить, что ProxyGen нуждается в этой версии или она должна работать с более поздними версиями? – KDecker