Я сохранил все свои java проекты следующим образом:
C: \ Users \ swagat \ Documents \ JavaProjects \ name_of_1st_project \ all_source_files. java C: \ Users \ swagat \ Documents \ JavaProjects \ name_of_2nd_project \ all_source_files. java C: \ Users \ swagat \ Documents \ JavaProjects \ name_of_3rd_project \ all_source_files. java C: \ Users \ swagat \ Documents \ JavaProjects_projects_of_name_of . java
Надеюсь, вы поняли иерархию.
Теперь я пытаюсь создать систему сборки в возвышенном тексте 3, которая может компилировать и запускать любую программу java в одним щелчком.
Моя система сборки содержит:
{
"shell_cmd": "javac $file && java $file_base_name"
}
Я также установил переменную среды CLASSPATH так, чтобы она указывала на C: \ Users \ swagat \ Documents \ JavaProjects
Я не хочу устанавливать разные CLASSPATH для каждого проекта
Вышеуказанная настройка работает, если я не использую пакет в моем java исходном коде
Но когда я использую пакет, например: package name_of_1st_project;
в мой java исходный код, затем я получаю сообщение об ошибке сборки: « Не удалось найти или загрузить основной класс name_of_1st_project. Вызвано: java .lang.NoClassDefFoundError: name_of_1st_project / name_of_1st_project (неправильное имя: name_of_1st_project)"
Чтобы решить проблему, я изменил файл сборки как:
{
"shell_cmd": "javac $file && java $file_base_name.name_of_1st_project"
}
И это решает проблему, но только для 1-го проекта.
Я хочу сделать его динамическим c, используя регулярное выражение или что-то еще, что может добавить « .name_of_nth_project » в конце возвышенный системный файл сборки. Я прочитал возвышенные документы и не нашел никакой переменной с текущим именем папки (только имя, исключая путь), которое я могу использовать.
Я искал весь inte rnet, но нашел нет точного решения. Пожалуйста, помогите. (возможно, мои комментарии могут помочь)