2011-10-08 6 views
5

にプログラム情報を保存するために、私は、Linuxへの新たなんだと私は今までそれで周りめちゃめちゃてきましたが、今、私は私のJavaプログラムは、Linux上で実行できるようにしたい...どこで、どのようにLinuxの

私は」インターネット上をすばやく見ていたので、ディレクトリとそのディスカッションのリストを見つけました。 /usr/libはプログラム情報を保存するのに最適な場所だと思われますが、私はVirtualBox VMを見ただけで、そこにはroot権限でも書き込めません。だから誰かが正しい方向に私を指すことができる場合、それは華麗だろう。

私は、Linuxには独自の「ソフトウェアセンター」があることに気付きました。私はこれについて間違った方向に向かいそうであることに気付きました。したがって、Linuxでのプログラミングについての何らかの紹介が役立ちます1つを提供するのに十分親切です! (ドットで始まる)隠しディレクトリで、ために -

PS私の仮想マシンはUbuntuディストリビューション

+0

Linuxはカーネルです、あなたはUbuntuについて話していますか? – Lekensteyn

+0

「Solaris」という用語が使用されていますか?あなたはUbuntuやGnomeのように、Linuxを使用するすべてのオペレーティングシステムを知っています!しかし、この特定のケースでは、私はUbuntuでテストしています... – Andy

+2

SolarisとLinuxはどちらもUNIXです。 SolarisはLinuxの一種ではありません。 –

答えて

4

ファイルシステムの構造は次のとおりです。 Linuxだけでなく、POSIX互換のシステム(BSD、Solaris、それにMac OS Xの場合もあります)はFHSで標準化されています。特にUbuntuの場合は、ubuntu-javaチームのDebian policy for Javapackaging guideを見てください。

プログラムが対話的に実行された場合、それは$HOME/.your-program-name(または$HOME/.config/your-program-name)に(データベースや設定などの)情報を保存する必要があります。プログラムがシステムサービスの場合は、その情報を/var/libに保存する必要があります。デフォルト設定を/etc/your-program-nameにインストールすることもできます。

バイナリはまったく別のもので、その場所の接頭辞は設定可能でなければなりません。ソフトウェアセンターとその依存関係/更新メカニズムの完全な利点を得るには、packageソフトウェアを使用してください。これらのバイナリ(およびそれらに付随するライブラリ)は、パッケージ化された場合は/usr/ツリーに、手動インストールの場合は/usr/local/になります。接頭辞にかかわらず、バイナリはbin(つまり/usr/bin)、ライブラリはlib32/lib64に、その他のデータはshareになります。

プログラムをパッケージ化せずに、FHSによって課せられた構造に従うことは望ましくない場合(実際に行う必要があります)、代わりにコードやその他のオブジェクトを/opt/your-program-nameに入れます。プログラムが生成して操作する(変更可能な)データは、まだ$HOME/.your-program-name(対話型)または/var/lib/your-program-name(サービス)になるはずです。

+0

システムサービスと '/ var/lib /'に言及するために+1 – ZeissS

+0

これは私が最初に予想したよりもずっと複雑ですが、 'home/.program-name'はちょうど私には正しかったとは思えませんでした。特に分かりませんでした。私が' usr/lib 'に言及した理由は、他のプログラムはそこにあるようですが、2番目の考えでは、私はソフトウェアセンター経由でダウンロードしました。だから私がソフトウェアセンターを使わないのであれば、私のプログラムをインストールする場所はホームディレクトリでしょうか? – Andy

+0

@Andy実際、見た目ほど複雑ではありません。あなたのプログラムが動作するデータをインストールする場所は、プログラムを手動でインストールするのかソフトウェアセンターでインストールするのかに依存しません**。パスは '/ home/.program-name'ではなく'/home/user/.program-name'であることに注意してください。 Javaでは、 'System.getProperty(" user.home ")'を使用してそのホームディレクトリを取得します。 – phihag

5

プログラムを実行している店もユーザーのホームディレクトリの下に、ある事前に

感謝例:.program-data。 〜/ .program-dataのフルパスは、OSのディストリビューションに依存します(通常は/ home/[ユーザ名] /。)program-data

+2

探したいシステムプロパティは "user.home" System.getProperty( "user.home") – Kennet

0

アプリケーションを格納する最も簡単な場所はホームディレクトリです。ユーザーを作成し、サービスのホームディレクトリを分離することができます。

しかし、JavaでコマンドラインやGUIツールを作成しているようです。アプリケーションを格納する共通の場所は、binディレクトリ(/usr/local/binまたは/home/myuser/binなど)の下にあります。libは、通常、アプリケーションによってロードされる共有ライブラリ用です。(Javaはそれらを使用しません)

+0

私は本当にJavaでGUIを作っていますが、root権限を持っていても '/ usr/local/bin'に書き込むことはできず、/ home/user/bin'も存在しません!さらに、最初のディレクトリに格納されている他のプログラムはありません。だから、私はまだ実行可能なプログラムを格納する場所が必要です! '/ home/user/.program-name'で十分でしょうか? – Andy

-1

アプリケーション&プログラムは、常に$ HOMEディレクトリに格納してインストールする必要があります。

これにより、アプリケーション&のプログラムを簡単に見つけることができます。

ソフトウェアのための別のフォルダを作成してください。&簡単に識別できるように$ HOMEの下にあるプログラム。

また、.bashrcファイルにJAVA_HOME環境変数を追加します。

+0

正直言って、それは間違いなく正しいと思われます。他の実行可能ファイルはありません! – Andy

+0

私は$ HOME/Softwaresディレクトリの下に数多くのアプリケーションとソフトウェアをインストールしていました。それは私のためにスムーズに動作します。他の実行可能ファイルはどういう意味ですか?あなたの仕事環境がシステムファイルなどで遊ぶことに関係する場合。その後、他のソリューションを検索するためのOK ... – Ankit

+0

「$ Home/Softwares directory」は正確にどこですか? 「他の実行可能ファイルはありません」とは、ユーザのディレクトリだけが分であるということです。他のソフトウェアはそこに保存されていないようです...しかし、私は、ソフトウェアセンター以外のソフトウェアを使って調査します。 – Andy

関連する問題