• Как настроить Sublime Text для запуска кода на Java?

    oldestRoman
    @oldestRoman Автор вопроса
    Итого, что мы имеем с гуся. Во-первых никто не знает, как это работает, кто знал — видимо уже не расскажут, ибо мёртвые не выдают секретов. Определённая польза от чтения, конечно, есть. Во-первых стало немного понятно, как работает сам JSON-file:
    cmd": [] Список исполняемых аргументов-буков, где в кавычках через запятую они и изложены:
    "javac", "-J-Dfile.encoding=utf8", "-d", ".", "$file_name" буквально консольное
    javac -J-Dfile.encoding=utf8 -d . мойфайл.java
    где -J c флагом — заставляет javac сменить кодировку для отображение русских букв, а
    -d . говорит ему положить class-файлы в корневую папку проекта (что выглядит лишним, потому что он кладёт их туда и без этого ключа)
    && — разумеется логическое и ещё, после чего следует
    start cmd /k — запустить консоль Windows и не закрывать её, в которой выполнить
    java сгенерированный.файл
    Вроде всё просто. Команды можно повторить вручную в консоли, если строки package нет, всё штатно отработает. А вот если она есть... В сгенерированном без этой строки класс-файле путь выглядит как папка , со строкой из имени класса — папка/папка. Но он не запускается не из корня, не из папки, не из папки/папки, мать его... не просто так, ни с командой -cp ., ни с командой -сp .. из любого места от корня выше или ниже. Хотя везде написано "просто убедитесь что имя пакета идентично структуре папок на диске относительно корневой директории и вы написали буквы в правильном регистре“. Видимо это сакральное знание придётся отложить на более позднюю ступень.

    P.S. Написал я это и пошёл грустно читать RTFM. А там такое интересное место:
    65b1d189a7792180030517.jpeg
    Я-то командую "java", "$file_base_name". А что, если вместо этого скомандовать "java", "$file_base_name.$file_base_name"
    И хлоп. Вопрос решился. А папке с файлом java создаётся папка с именем файла, в которой лежат файлы класса со строкой package, которые успешно запускаются.

    Но для красоты хотелось бы понять, как передать консоли команду обработать классы лежащие непосредственно в корневой папке без создания дополнительной.
    Написано
  • Как настроить Sublime Text для запуска кода на Java?

    oldestRoman
    @oldestRoman Автор вопроса
    Итого, что мы имеем с гуся. Во-первых никто не знает, как это работает, кто знал — видимо уже не расскажут, ибо мёртвые не выдают секретов. Определённая польза от чтения, конечно, есть. Во-первых стало немного понятно, как работает сам JSON-file:
    cmd": [] Список исполняемых аргументов-буков, где в кавычках через запятую они и изложены:
    "javac", "-J-Dfile.encoding=utf8", "-d", ".", "$file_name" буквально консольное
    javac -J-Dfile.encoding=utf8 -d . мойфайл.java
    где -J c флагом — заставляет javac сменить кодировку для отображение русских букв, а
    -d . говорит ему положить class-файлы в корневую папку проекта (что выглядит лишним, потому что он кладёт их туда и без этого ключа)
    && — разумеется логическое и ещё, после чего следует
    start cmd /k — запустить консоль Windows и не закрывать её, в которой выполнить
    java сгенерированный.файл
    Вроде всё просто. Команды можно повторить вручную в консоли, если строки package нет, всё штатно отработает. А вот если она есть... В сгенерированном без этой строки класс-файле путь выглядит как папка , со строкой из имени класса — папка/папка. Но он не запускается не из корня, не из папки, не из папки/папки, мать его... не просто так, ни с командой -cp ., ни с командой -сp .. из любого места от корня выше или ниже. Хотя везде написано "просто убедитесь что имя пакета идентично структуре папок на диске относительно корневой директории и вы написали буквы в правильном регистре“. Видимо это сакральное знание придётся отложить на более позднюю ступень.
    Написано
  • Как настроить Sublime Text для запуска кода на Java?

    oldestRoman
    @oldestRoman Автор вопроса
    Я не понимаю, почему "-cp", ".", перед именем файла не мешает запуску, если строка package закомментирована, но и не помогает ему, если она активная. Можете сказать, каким образом в sublime-build добавить текущую директорию как classpath?
    Написано
  • Как настроить Sublime Text для запуска кода на Java?

    oldestRoman
    @oldestRoman Автор вопроса
    Я в теории понимаю что нужен classpath, я его уже мучал. Как это сделать? Если в sublime-build вписать:
    "-cp ${file_path}",
    то на выходе я получаю:
    error: invalid flag: -cp полный путь к файлу
    Написано