Если вы используете файл jar, вы можете настроить файл манифеста и предоставить некоторую информацию (основной класс и т. д.) в этом файле.
Вы также можете ссылаться на другие файлы jar, которые будут использоваться вашей основной банкой файл. Например. которые вы не хотите включать в ваш файл jar компании.
Кроме того, что другие ребята правы - настройте командный файл / скрипт.
uname
или
uname -a
, если Вы хотите больше информации
Для моего .bashrc я использую следующий код:
platform='unknown'
unamestr=`uname`
if [[ "$unamestr" == 'Linux' ]]; then
platform='linux'
elif [[ "$unamestr" == 'FreeBSD' ]]; then
platform='freebsd'
fi
Тогда я делаю somethings как:
if [[ $platform == 'linux' ]]; then
alias ls='ls --color=auto'
elif [[ $platform == 'freebsd' ]]; then
alias ls='ls -G'
fi
Это ужасно, но это работает. Можно использовать case
вместо if
, если Вы предпочитаете.
В странице справочника удара говорится, что переменный OSTYPE хранит название операционной системы:
OSTYPE
Автоматически набор к строке, которая описывает операционную систему, в которой выполняется удар. Значение по умолчанию системно-зависимо.
Это установлено на linux-gnu
здесь.
Попытайтесь использовать "uname". Например, в Linux: "uname-a".
Согласно странице руководства, uname соответствует SVr4 и POSIX, таким образом, это должно быть доступно на Mac OS X и Cygwin также, но я не могу подтвердить это.
BTW: $OSTYPE также установлен на linux-gnu
здесь:)
Обнаружение операционная система и тип ЦП не настолько легко сделать портативно . Я имею sh
сценарий приблизительно 100 строк, который работает через очень большое разнообразие платформ Unix: любая система я использовал с 1988.
основные элементы
uname -p
, тип процессора , но обычно unknown
на современных платформах Unix.
uname -m
даст "аппаратное название машины" в некоторых системах Unix.
/bin/arch
, если это существует, будет обычно давать тип процессора.
uname
без аргументов назовет операционную систему.
В конечном счете необходимо будет думать о различиях между платформами и , как прекрасный Вы хотите сделать их. , Например, только для хранения вещей простыми я рассматриваю i386
до i686
, любой" Pentium*
" и любой" AMD*Athlon*
" все как [1 110].
Мой ~/.profile
выполнения сценарий при запуске, который устанавливает одну переменную на строку, указывающую на комбинацию ЦП и операционной системы. Я имею определенный для платформы bin
, man
, lib
, и include
каталоги, которые будят набор на основе этого. Тогда я установил полную лодку переменных среды. Так, например, сценарий оболочки для переформатирования почты может звонить, например, $LIB/mailfmt
, который является определенным для платформы исполняемым двоичным файлом.
, Если Вы хотите сократить углы , uname -m
и плоскость uname
, скажет Вам, что Вы хотите знать на многих платформах. Добавьте другой материал при необходимости в нем. (И используйте case
, не вложенный if
!)
В ударе используйте $OSTYPE
и $HOSTTYPE
, как зарегистрировано; это - то, что я делаю. Если это недостаточно, и если даже uname
или uname -a
(или другие подходящие варианты) не дает достаточно информации, there’s всегда сценарий config.guess из проекта GNU, сделанного точно с этой целью.
Я записал персональную библиотеку Bash и платформу сценариев, которая использует GNU shtool, чтобы сделать довольно точное обнаружение платформы.
GNU shtool является очень портативным набором сценариев, который содержит, среди других полезных вещей, 'shtool платформа' команда. Вот вывод:
shtool platform -v -F "%sc (%ac) %st (%at) %sp (%ap)"
на нескольких различных машинах:
Mac OS X Leopard:
4.4BSD/Mach3.0 (iX86) Apple Darwin 9.6.0 (i386) Apple Mac OS X 10.5.6 (iX86)
Ubuntu Jaunty server:
LSB (iX86) GNU/Linux 2.9/2.6 (i686) Ubuntu 9.04 (iX86)
Debian Lenny:
LSB (iX86) GNU/Linux 2.7/2.6 (i686) Debian GNU/Linux 5.0 (iX86)
Это приводит к довольно удовлетворительным результатам, как Вы видите. GNU shtool является немного медленным, таким образом, я на самом деле храню и обновляю идентификацию платформы в файле в системе, которую называют мои сценарии. Это - моя платформа, так, чтобы работы для меня, но Ваш пробег может варьироваться.
Теперь, необходимо будет найти способ упаковать shtool со сценариями, но это не трудное осуществление. Можно всегда возвращаться к выводу uname, также.
Править:
Я пропустил сообщение Teddy о config.guess
(так или иначе). Это очень похожие сценарии, но не то же. Я лично использую shtool для другого использования также, и он работал вполне хорошо на меня.