2017-09-01 3 views
-3

私は夏の間、会社のJavaプログラムに取り組んできました。初心者のプログラマーなので、私が作成したファイルを使って他のシステムで使うためのプログラムを作ったことはありません。私のプログラムはApache Poiを使ってExcelに読み書きし、現在使用されているExcelファイルはプログラムによって指定された特定のディレクトリにあります。プログラムはまた、コードで指定されたディレクトリにあるいくつかのイメージを使用します。他のシステムのためのJavaプログラムの作成

他のシステムでこのプログラムを実行可能にするにはどうすればよいですか?他のシステムに「インストール」されているときにいつでもプログラムがExcel文書を作成できるようにすることは可能でしょうか?

現在、私は、Eclipseを使用していますし、システムはあなたが、.jarで内部の.classファイルとリソースファイルで、実際にzipファイルを、アプリケーションをパックすることができます7.

+2

なぜExcelドキュメントをインストールする必要がありますか?他のシステムで正しく動作させたい場合は、パスをハードコードしないでください。それらを構成可能にするか、ユーザーが生成時にそれを選択できるようにします。 – Kayaman

+0

私はJavaの初心者だと言っていたので、他のシステム上でどのように動作させるかを尋ねています。 –

+1

別のシステムで実行して、問題が発生したら解決してください。 –

答えて

0

ウィンドウです。画像のようなリソースファイルは、getClass().getResource("path/x.png")またはgetResourceAsStreamで撮影できます。パスは、パッケージの相対パスまたは絶対パスのいずれかです: "/abc/def.jpg"。

これらのリソースは、(.jarの中にあるように)読み取り専用でなければなりません。しかし、Excel テンプレートをリソースとして保存し、それをユーザのディレクトリにコピーすることができます。

System.getProperty("user.home") 

リソースをコピーできるユーザーのディレクトリを指定します。

Path appWorkspace = Paths.get(System.getProperty("user.home"), "myapp"); 
Files.createDirectories(appWorkspace); 
Path xlsx = appWorkspace.resolve("untitled.xlsx"); 
Files.copy(getClass().getResourceAsStream("/data/empty.xlsx"), 
    xlsx); 
+0

ありがとう、これは、私の唯一の懸念はExcelファイルが上書きされているが、私はそれがファイルが存在するかどうかをチェックすることで回避できると思うが、私が探しているようだ。 –

+0

'Files.copy'(および他の関数)には、' StandardCopyOption.REPLACE_EXISTING'などのvararg引き数があります。 –

+0

このコードをテストしようとしましたが、パスxlsx行にnullポインタ例外が発生しました。プロジェクト内にdataというフォルダがあるはずですか?また、myappにuntitled.xlsxが表示されないようです。 –

関連する問題