Платформа IntelliJ (на которой основаны IDE JetBrains) предлагает два формата проекта
Если вы выберете На основе каталогов (примечание: кажется, единственный выбор для PyCharm)
есть папка .idea
на проект .
для модуля имеется файл .iml
(который может быть самим проектом, если есть только один).
Папка .idea
отслеживает конфигурацию рабочей области
Файл .iml
, вместо
[ 1133]
Они являются структурными компонентами проекта IDEA.
Они не нужны при работе над VS Code, Eclipse или другими IDE, однако они могут быть полезны для импорта целей.
В Linux существует много эмуляторов терминала, которые позволяют Вам взаимодействовать с различными оболочками. Каждая оболочка является в основном интерпретатором команд, который понимает команды Linux (GNU & Unix управляет, более корректно, я предполагаю...). Эмулятор терминала обеспечивает интерфейс (окно) для оболочки и некоторые другие средства для использования командной строки. Для открытия окна терминала просто необходимо изменить командную строку как этот:-
import java.io.*;
class TerminalLauncher
{
public static void main(String args[]) throws IOException
{
String command= "/usr/bin/xterm";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
}
}
Основное предположение, которое я сделал, состоит в том, что Вы хотите открыть xterm, который доступен почти в любой системе (с X установленный, конечно). Вы могли бы хотеть открыть другой эмулятор терминала как rxvt, eterm, aterm, терминал гнома или консоль. Командная строка может также быть изменена для использования различных оболочек как zsh. Я предлагаю, чтобы Вы поймали исключение в случае, если терминал, который Вы выбрали, не присутствует, и обработайте его путем просьбы, чтобы пользователь установил его. Лучшее решение состоит в том, чтобы принять параметры командной строки для пользователей предпочтенная оболочка или использовать конфигурационный файл, который пользователь может изменить, чтобы заставить Ваш сценарий открыть оболочку его выбора.
Примечание:
1. Как другие уже указали, xterm (или любой другой терминал по Вашему выбору) может не быть в указанном пути (/usr/bin/...) и даже может не быть установлен, таким образом, Вам, возможно, придется использовать некоторую необычную командную строку (Исключая: конвейерная обработка находит через grep для получения пути к xterm прежде, чем запуститься), который не является такой прекрасной идеей. Я думаю, что лучший способ состоит в том, чтобы позволить пользователю настроить все это.
2. Я получил комментарий к этому ответу (ypnos), предложив, чтобы я избегал использования полных путей и скорее полагался на команду, находящуюся в переменной окружения PATH. Я должен сказать, что соглашаюсь. В этом случае командная строка должна быть -
String command = "xterm"
Действительно посмотрите на комментарий, потому что он также указывает, что проблема с использованием находит.
Под Gnome это gnome-terminal
.
Под KDE это konsole
.
Или Вы могли использовать более универсальную терминальную программу xterm
.
Вы будете, вероятно, хотеть использовать опции с большей частью из этого, поэтому искать страницы справочника для той, которую Вы хотите.
Нет никакой единственной стандартной "терминальной" команды на Linux - те доступные зависят, на котором GUI присутствует (т.е. ли KDE или Gnome, и т.д.).
Необходимо смочь полагаться xterm
при присутствовании, но на современных вариантах Linux это не предпочтительный терминал:
String command= "/usr/bin/xterm";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
Конечно, "xterm" не мог бы быть в том конкретном пути...
Нет на самом деле терминала. То, что Вы действительно хотите, является оболочкой. Большинство Linux использует BaSH в качестве оболочки, но сохранять безопасную сторону необходимо ограничить себя/bin/sh
Править: Хм я, вероятно, неправильно понял вопрос. Если Вы хотите интерактивный терминал, необходимо изучить использование инструментария, обеспечивающего компонент для этого.
Edit2: Возможно, Ваши потребности могут быть удовлетворены VTE, который является GTK + компонент для встраивания терминала.
Я определенно обеспечил бы простой способ настроить путь к желаемому терминалу в месте, которое может быть легко отредактировано. Например, возможно, в XML-файле конфигурации.
Различные дистрибутивы сохранят это в различных местах, таким образом, будет, вероятно, лучше проверить на документацию распределения для платформ, Вы нацелены (и зарегистрировать, как изменить его).
"/usr/bin/xterm" должен быть на большинстве машин, но я не обязательно поставил бы ферму на нем.
так как необходимо предположить, что Вы почти ничего не знаете о системе, Вы работаете на этом, я сказал бы, что наименьший общий знаменатель будет:
Строковая команда = "/bin/sh";
Строковая команда = "sh";
Я думаю, что было бы хорошо, если Ваше приложение откроет терминальное приложение пользователя по умолчанию.
К сожалению, кажется, что нет никакого универсального способа определить его.
По-моему, самое предпочтительное решение было бы (остановка каждый раз, когда можно открыть что-то):
При обнаружении настольной среды пользователя и это - терминал по умолчанию, мог бы быть слишком сложным для цели, таким образом, я буду использовать две последних опции. Можно запустить приложение от $TERM с кодом как это:
String command = System.getenv().get("TERM");
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
xterm will most probably be available on most Linux-based operating systems and if present will be found in the path variable.
Therefore, you will need to do something like this:
try {
Runtime r = Runtime.getRuntime();
String myScript = .....
String[] cmdArray = {"xterm", "-e", myScript + " ; le_exec"};
r.exec(cmdArray).waitFor();
} catch (InterruptedException ex){
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
The -e option can be used to invoke either a script or another program, for example: javac. In this case you would make an assignment like: myScript = "javac".
You will need the " ; le_exec"
part if you do not want the window to immediately close after execution, otherwise discard it. The semi-colon is used to separate commands and le_exec is just a simple script that waits for the user to press Enter.
However, if your script needs arguments, then you would need to replace the String myScript by and array of Strings.