2

Mac (OS バージョン 10.6.8) 上の NetBeans (v. 7.2.1) で GUI アプリケーションを開発しました。このアプリケーションには、XML ファイル (プログラムで使用されるデータを含む) が必要です。これをサブディレクトリに配置したいと考えていdataます。

問題は、NetBeans 内からアプリケーションを実行したい場合、このデータ ディレクトリをメイン プロジェクト ディレクトリ内に配置する必要があることです。.jarただし、メインディレクトリのサブディレクトリにあるファイルを (ダブルクリックを使用して)単純に実行したい場合はdist、データフォルダーをdist- に移動する必要があります。そうすると、プログラムは NetBeans 内から実行されなくなります。

これは、プログラム内でデータ ファイル パスを指定する方法です。

public String vocabPath = "data" + File.separator + "wordlist.xml";
public File vocabFile = new File(vocabPath);

アプリケーションの再配布については、データディレクトリを に移動して配布するだけでよいと考えたため、最初はこれ自体は問題ではないように思われましdistた (OS X と Windows 7 では問題なく動作しました)。ただし、Ubuntu では、データ ファイルが見つからないというエラー メッセージが表示されました。

私は Java を初めて使用するので、これはばかげた質問かもしれませんが、とにかく、どのようにすればアプリケーションが にあるデータ ファイルに常にアクセスできるようになりますMAIN_DIR/dist/dataか? または、問題の根本が別の場所にある場合は、お知らせください。

よろしくお願いします!

編集

問題をUbuntuでのみ発生する予期しない動作に絞り込んだと思うので、フォローアップの質問を投稿しました。

編集2

私のフォローアップの質問 (最初の編集を参照) への回答は、私の問題を解決しました (私のような問題を解決しようとしているときにこの投稿を見つけた人へのメモとして)。

4

2 に答える 2

0

ファイルのシステム プロパティを保持し、distデフォルトでのパスを保持します。開発環境にファイルが存在する場合data、アプリケーションはそれを取得します。それ以外の場合は、常に のファイルを取得しますdist

あなたは次のようにすることができます:

// This would pick up system property if set otherwise default value provided.
String filePath = (String) System.getProperty("VOCAB_FILE_PATH","<<path with dist>>"); 
public File vocabFile = new File(filePath);

NetBeans 環境ではVOCAB_FILE_PATH、パスが として示されているシステム プロパティを設定するだけdataです。

于 2012-11-21T04:39:49.570 に答える