web-dev-qa-db-ja.com

環境変数を設定してMac Eclipseを起動します

私の会社は、複数のバージョンを同時にインストールしてシステムを引き継ぐことができないように、基盤となるツールチェーン用にいくつかの環境変数を設定する必要があるEclipseベースの開発環境を提供しています。

Finderまたはアイコンを設定してEclipseを起動するアイコンを提供したいので、環境を設定せずにお客様が誤ってEclipseを起動することはありません。これは私がこれまでに試したことです:

  1. Info.plistでEclipseの環境を設定する:

    これはいい方法ですが、既存のパスに追加することはできません(エクスポートPATH =/myapp/bin:$ PATHなど)。

  2. eclipseをラップするbashスクリプト:

    環境を設定してEclipseを起動するEclipse.commandというbashスクリプトを作成しました。これにより、ターミナルウィンドウとEclipseアイコンが開き、Eclipseをそのまま使用できるようになります。 Eclipse.commandはアプリケーションではないため、ドックに配置できません。

  3. Eclipse.commandをラップするApplescript:

    Eclipse.commandの周りのApplescriptラッパーは、それをアプリのように見せ、ターミナルウィンドウが表示されないようにします。残念ながら、私は今、applescriptのドックアイコンとEclipseのドックアイコンを取得しているため、Eclipseをそのままドックに保持できます。

助言がありますか?私はこれを完全に間違った方法で行っていますか?

28
Russell Gallop

ユーザーがEclipseアプリケーションを起動するときにMacOS Xによって実行される実行可能ファイルを、環境をセットアップするシェルラッパーで置き換えることを含む代替ソリューションがあります。

Eclipseアプリケーションバンドルディレクトリ/Applications/Eclipse/Eclipse.app/Contents/MacOSに「Eclipse.sh」という空のテキストファイルを作成します。

テキストエディターでEclipse.shを開き、次の内容を入力します。

#!/bin/sh

export ENV_VAR1=value
export ENV_VAR2=value

logger "`dirname \"$0\"`/Eclipse"

exec "`dirname \"$0\"`/Eclipse" $@

この例では、ENV_VAR1とENV_VAR2は、セットアップされる環境変数です。これらの変数は、Eclipse内から起動されたプロセスに表示されます。 loggerコマンドは、Eclipse実行可能ファイルのパスをデバッグ支援としてsystem.logに記録するだけです。

ターミナルで、シェルスクリプトEclipse.shの実行可能フラグを設定します。

chmod +x /Applications/Eclipse/Eclipse.app/Contents/MacOS/Eclipse.sh

Eclipse.app Info.plistを開き、キーCFBundleExecutableの値をEclipseからEclipse.shに変更します。

MacOS Xは、Eclipse.appのInfo.plistが変更されたことを自動的に検出しません。したがって、lsregisterコマンドを使用して、ターミナルでLaunchServiceデータベースを強制的に更新する必要があります。

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/Eclipse/Eclipse.app

次回DockまたはFinderからEclipse.appを起動するときに、環境変数を設定する必要があります。

46
sakra

私は以下を作成しました:

エイリアスstart-Eclipse = 'open /Applications/Eclipse/Eclipse.app'

コマンドラインからstart-Eclipseを実行すると、すべての環境変数が取得されます。この方法では、コマンドライン環境とEclipse環境の両方で単一の環境変数のセットを維持するだけで済みます。

7
Chris Fregly

関連する質問を見てください: Mac OS Xの環境変数

基本的に、これには~/.MacOSX/environment.plistファイルの作成が含まれます。

ログアウトしてログインし、environment.plistで.Appにピックアップされます。

6
mouviciel

上記のどれも私にとってはうまくいきませんでした。 Eclipse-> Preferences-> Terminal-> Arguments set to --loginを設定する必要があります。これにより、EclipseはTerminalを開いた直後に自分のアカウントでログインするようになります。

スクリーンショットを見る:

enter image description here

リファレンス: https://marketplace.Eclipse.org/comment/4259#comment-4259

3
Ahmed Hammad

これはOS X Yosemiteで完全に機能しました:

  1. / Applications/Automatorを開きます。
  2. 作成するドキュメントの種類を尋ねるドロップダウンが表示されたら、[アプリケーション]を選択します。
  3. 左から2番目のリストで、[シェルスクリプトの実行]をダブルクリックします。
  4. 右側で、自動的に配置される「猫」を削除し、次のように置き換えます。

    source ~/.bash_profile && /Applications/Eclipse/Eclipse.app/Contents/MacOS/Eclipse
    

次に、[ファイル]> [保存]に移動し、アプリケーションをアプリケーションディレクトリに保存します。すでに持っている「Eclipse」ディレクトリと競合しないように、大文字の「E」で「Eclipse」と名付けました。実際のEclipseアプリを選択し、command-iを押し、アイコンを選択し、command-cを押し、オートマトン「Eclipse」アプリを選択し、command-iを押し、アイコンを選択することで、Eclipseアイコンを与えることもできます。 、およびcommand-vを押します。

これで、アプリを開いたり、ドックにドラッグしたりできます。起動すると、「実際の」Eclipseは別のアイコンとしてドックに表示されますが、すべてを使用できるわけではありません。 :)

3
ayrton04

上記のサクラの答えは素晴らしいですが、既存のbash環境を自動的に継承しない点が異なります。 Eclipse.shが既存のbash環境を確実に取得できるようにするには、sh。の代わりにbashを使用するようにEclipse.shを変更し、既存の〜/ .bash_profileをソースする行を追加します。

#!/bin/bash
source ~/.bash_profile
logger "`dirname \"$0\"`/Eclipse"
exec "`dirname \"$0\"`/Eclipse" $@
3
Andy Carroll

リンク Eclipseは.bashrcで設定されたパスを使用しません

  1. 簡単なスクリプトを作成する
#!/bin/bash
source /home/user/.environment_variables
/home/user/Eclipse_cpp/Eclipse -Duser.name="My Name"

2.次に、すべてのシステム変数を/home/user/.environment_variablesファイル(必要なファイル)に配置します。

私のように見えます:

export COCOS_ROOT=/home/user/Projects/edukoala
export Java_HOME=/usr/lib/jvm/Java-7-openjdk-AMD64/

3.これで、.bashrcの変数を削除して、行を追加できます

source /home/user/.environment_variables

すべてうまくいきます:)

1
Dawid Drozd

https://github.com/atom/atom/issues/7045 で指摘されているように、source ~/.bash_profileを明示的に使用しなくても、環境変数を自動的にロードできます。

#!/usr/bin/env bash -l

の代わりに

#!/bin/bash
source ~/.bash_profile

その後、どちらの場合も、次のようになります

exec "`dirname \"$0\"`/Eclipse" $@

これまでの仕事に感謝します。

1
Philipp Kunz