Из учебника я узнал, что файл .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;
}
}
Код: Выделить всё
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 в 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
Мобильная версия