исключение класса агента java не найдено - PullRequest
1 голос
/ 17 ноября 2011

У меня есть структура каталогов "D: \ workspace 2 \ project \ lib", где у меня есть все файлы "AgentMain.java" (которые я скопировал из src и поместил здесь, чтобы сделать это проще), "asm-all.3.3.jar "," myagent.jar ".Теперь, когда я пытаюсь вызвать мою java-программу, например, из командной строки

D:\workspace 2\project\lib>java -javaagent:myagent.jar -cp asm-all-3.3.jar;. AgentMain.java

, она вызывает исключение в основном потоке java.lang.NoclassDefFoundError AgentMain / java и говорит, что не может найти основной класс AgentMain.java

Что здесь не так?

Ответы [ 4 ]

1 голос
/ 17 ноября 2011

Java не интерпретирует исходные файлы.

Сначала вы должны скомпилировать AgentMain.java с javac. Затем вы должны указать AgentMain в командной строке вместо AgentMain.java.

1 голос
/ 17 ноября 2011

Вы должны ссылаться на скомпилированный файл .class, а не на файл .java

1 голос
/ 17 ноября 2011

Вы пытаетесь выполнить свой исходный файл (AgentMain.java) вместо класса.Убедитесь, что вы скомпилировали AgentMain с помощью javac, а затем удалите расширение файла .java.

ОБНОВЛЕНИЕ, основанное на обсуждении в комментариях: поскольку ваш класс AgentMain определен в пакете с именем "main" после компиляцииclass, соответствующий ему файл класса должен находиться в каталоге с именем "main".

, поэтому, если вы запускаете из своего каталога "d: \ workspace 2 \ project \ lib" введенную вами команду, скомпилированный класс должен находиться в каталоге d: \ workspace 2 \ project \ lib \ main\ AgentMain.class

1 голос
/ 17 ноября 2011

Вы не можете запустить .java файлы, вам нужно сначала скомпилировать их с помощью javac, а затем запустить скомпилированный код (.class файлы). В вашем примере вы должны запустить

javac -cp asm-all-3.3.jar;. AgentMain.java

, а затем

java -javaagent:myagent.jar -cp asm-all-3.3.jar;. AgentMain
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...