Как избежать расширения отладчика Java в коде VS напрямую, используя классы из других файлов .java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как избежать расширения отладчика Java в коде VS напрямую, используя классы из других файлов .java?

Сообщение Anonymous »

Я просто хочу, чтобы мой файл .java использовал классы, определенные в этом файле, или имел доступ к файлам .class в той же папке. Однако отладчик Java может запускать программу, используя классы в других файлах .java, даже в других папках, что меня очень смущает.
Из учебника я узнал, что файл .java файл может использовать класс в файле .class в той же папке или использовать операторы импорта или пакета для представления других классов.
Я выполнил упражнения в учебнике без использования расширения Java и просто установил отладчик Java, когда начал изучать часть алгоритма.
поэтому я столкнулся с проблемой: при копировании класса из файла .java, вставке его в новый и изменении его, этот новый класс нельзя использовать в новом файле, когда я запускаю этот файл с помощью функции запуска и отладки. Я просмотрел их документ по устранению неполадок, там написано: «Если в текущей рабочей области есть несколько классов с одинаковым именем, отладчик использует тот, который находится внутри проекта, указанного в projectName». Таким образом, даже если я определяю этот класс в новом файле, вызывается исходный. Как изменить его, чтобы он мог использовать классы так, как я ожидал? Между тем, новый файл может быть успешно выполнен, когда я использую командную строку терминала.

Код: Выделить всё

java fileName.java
.
Например,
У меня есть файл OldFile.java в каталоге /Users/Liam/Documents/Java/src. /глава1

Код: Выделить всё

public class OldFile {
public static void main(String[] args){
CustomClass cc = new CustomClass(1, 2); // 2 arguments
}
}
class CustomClass {
private int num1;
private int num2;
public CustomClass(){
this(0,0);
}
public CustomClass(int num1, int num2){
this.num1 = num1;
this.num2 = num2;
}
}
и еще один файл: файл NewFile.java в папке /Users/Liam/Documents/Java/src/chapter2

Код: Выделить всё

public class NewFile {
public static void main(String[] args){
CustomClass cc = new CustomClass(1); //1 argument
}
}
class CustomClass {
private int num1;
public CustomClass(){
this(0);
}
public CustomClass(int num1){
this.num1 = num1;
}
}
Когда я использую функцию запуска и отладки для запуска NewFile.java, предоставляемого отладчиком Java, он сообщает об ошибке, сообщая, что конструктор с одним параметром не определен. Но с Java NewFile.java он работает нормально.
И самое смешное, если вы переименуете NewFile.java в OldFile.java и измените также имя класса в файле. , независимо от того, как вы изменяете этот файл, он будет читать OldFile.java в главе 2. Это очень противоречиво.
Я думаю, что один из возможных способов того, как отладчик Java может делать такие вещи, — это компилировать все мои файлы .java в одном проекте в общий пакет.
Я ожидаю, что при использовании отладчика Java для запуска и отладки программы он не будет напрямую использовать классы из других файлов без моих инструкций. Он должен использовать или вводить классы, явно определенные в языке Java.
Я прочитал их https://github.com/microsoft/vscode-java-debug и попробовал несколько вещей:
  • установить принудительную сборку перед запуском false. это не работает.
  • измените параметры пути к классам или модулю в файле launch.json, это не работает.

    Код: Выделить всё

    "classPaths": ["${workspaceFolder}/Welcome.java"], //result: can't find the main class
    "classPaths": ["$Runtime"], //result: doesn't change anything, no such constructor.
    "modulePaths": ["$Runtime"], //result: Cannot resolve the modulepaths/classpaths automatically, please specify the value in the launch.json.
    "modulePaths": ["${workspaceFolder}/Welcome.java"], //result:  java.lang.module.FindException: Module format not recognized
    


Подробнее здесь: https://stackoverflow.com/questions/782 ... -from-othe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»