私の会社は、複数のバージョンを同時にインストールしてシステムを引き継ぐことができないように、基盤となるツールチェーン用にいくつかの環境変数を設定する必要があるEclipseベースの開発環境を提供しています。
Finderまたはアイコンを設定してEclipseを起動するアイコンを提供したいので、環境を設定せずにお客様が誤ってEclipseを起動することはありません。これは私がこれまでに試したことです:
Info.plistでEclipseの環境を設定する:
これはいい方法ですが、既存のパスに追加することはできません(エクスポートPATH =/myapp/bin:$ PATHなど)。
eclipseをラップするbashスクリプト:
環境を設定してEclipseを起動するEclipse.commandというbashスクリプトを作成しました。これにより、ターミナルウィンドウとEclipseアイコンが開き、Eclipseをそのまま使用できるようになります。 Eclipse.commandはアプリケーションではないため、ドックに配置できません。
Eclipse.commandをラップするApplescript:
Eclipse.commandの周りのApplescriptラッパーは、それをアプリのように見せ、ターミナルウィンドウが表示されないようにします。残念ながら、私は今、applescriptのドックアイコンとEclipseのドックアイコンを取得しているため、Eclipseをそのままドックに保持できます。
助言がありますか?私はこれを完全に間違った方法で行っていますか?
ユーザーが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を起動するときに、環境変数を設定する必要があります。
私は以下を作成しました:
エイリアスstart-Eclipse = 'open /Applications/Eclipse/Eclipse.app'
コマンドラインからstart-Eclipseを実行すると、すべての環境変数が取得されます。この方法では、コマンドライン環境とEclipse環境の両方で単一の環境変数のセットを維持するだけで済みます。
関連する質問を見てください: Mac OS Xの環境変数 。
基本的に、これには~/.MacOSX/environment.plist
ファイルの作成が含まれます。
ログアウトしてログインし、environment.plistで.Appにピックアップされます。
上記のどれも私にとってはうまくいきませんでした。 Eclipse-> Preferences-> Terminal-> Arguments set to --loginを設定する必要があります。これにより、EclipseはTerminalを開いた直後に自分のアカウントでログインするようになります。
スクリーンショットを見る:
リファレンス: https://marketplace.Eclipse.org/comment/4259#comment-4259
これはOS X Yosemiteで完全に機能しました:
右側で、自動的に配置される「猫」を削除し、次のように置き換えます。
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は別のアイコンとしてドックに表示されますが、すべてを使用できるわけではありません。 :)
上記のサクラの答えは素晴らしいですが、既存のbash環境を自動的に継承しない点が異なります。 Eclipse.shが既存のbash環境を確実に取得できるようにするには、sh。の代わりにbashを使用するようにEclipse.shを変更し、既存の〜/ .bash_profileをソースする行を追加します。
#!/bin/bash
source ~/.bash_profile
logger "`dirname \"$0\"`/Eclipse"
exec "`dirname \"$0\"`/Eclipse" $@
リンク Eclipseは.bashrcで設定されたパスを使用しません
#!/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
すべてうまくいきます:)
https://github.com/atom/atom/issues/7045 で指摘されているように、source ~/.bash_profile
を明示的に使用しなくても、環境変数を自動的にロードできます。
#!/usr/bin/env bash -l
の代わりに
#!/bin/bash
source ~/.bash_profile
その後、どちらの場合も、次のようになります
exec "`dirname \"$0\"`/Eclipse" $@
これまでの仕事に感謝します。