Я пишу скрипты с Java api, которые компилируются в файлы классов и выполняются с моей точки зрения на виртуальной машине (у меня нет доступа к этой виртуальной машине и я не могу отлаживать мои файлы классов изнутри.) Эти сценарии требуют, чтобы наблюдаемые данные выполнялись и не запускались должным образом, если они не были выполнены на этой виртуальной машине. Как следствие того, что эти файлы классов выполняются, насколько мне известно, я не могу отлаживать их с помощью встроенного отладчика IDE.Что сейчас делает java?
У меня на самом деле нет словарного кодирования, чтобы даже искать ответы на это последнее утверждение, поэтому, пожалуйста, исправьте меня, если я ошибаюсь.
В любом случае, единственный способ, который я определил, позволит мне отлаживать эти сценарии, является классическим методом print-statement. Это ужасно. Но это работает. И кажется, что все сообщество для api использует этот метод.
У меня была идея, что я могу использовать отражение, чтобы захватывать информацию из моих классов по мере их выполнения, но это все еще не дает мне доступ к по очереди отладке, которую я ищу.
Что бы я хотел сделать, это следить за выполнением моего сценария шаг за шагом (при каждом вычислении виртуальной машины) и хранить информацию об этих вычислениях (переменная «foo» в классе «bar» становится 4 в строке «soandso») в виде своего кеша, который сбрасывается на системную консоль всякий раз, когда возникает ошибка.
Возможно ли это?
Вы должны рассмотреть регистратор. Это похоже на заявления печати, за исключением того, что вы можете указать уровни журналов (debug, info, warning, error), и вы можете выбрать запись в файл, а также stdout (например, инструкцию печати). Если у вас есть доступ к виртуальной машине, вы также можете загрузить журналы. – algrebe
Какая IDE вы используете, что не позволяет отлаживать? – Codebender
Не уверен, что я полностью следую этому вопросу, удаленная отладка Java, что вам нужно делать? Это возможно с Eclipse по крайней мере. – paisanco