ここから質問投稿すると、最大4000ポイント当たる!!!! >>

Javaアプリ(notアプレット,notサーブレット)を開発しています。
JButtonを1クリックして、DBサーバーのデータを帳票に出力する処理を作っています。直接帳票ではなく、クライアントPC上に、PDFファイルを書き出しています。
ここまでは、うまく行ったのですが、この後、AdobeReaderをJAVAから起動する方法がわかりません。
よろしくお願いいたします。

クライアントPC:
Windows XP Pro
J2SDK ver 1.4.1-b21
AdobeReader ver6.0

このQ&Aに関連する最新のQ&A

A 回答 (1件)

非常に乱暴な方法で、


申し訳ないのですが、
以下の方法で、
たぶん一応うまくいくと思います。
なお、この方法の場合、アクロバットリーダー
をIEのなかで起動させるような動きになります。
ネットスケープ等のほかのブラウザではよくわからないです。


Windowsのスタートメニューの
ファイル名を指定して実行
のところで
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://www.excite.co.jp
を入力するとと
IEが立ち上がり
exciteのサイトが表示されました。

なので、
javaコードの中で
単純に
Runtime.getRuntime().exec(



"C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://www.excite.co.jp

とやっても同じだと思うので・・。


IEはURLパターンの最後が
.pdfで終了していると、
contentType等の設定に関係なく、
アクロバットリーダーが起動してくれる
ような動きであった淡い記憶があります。

なので、

Runtime.getRuntime().exec(

の引数を

"C:\Program Files\Internet Explorer\IEXPLORE.EXE" hoge.pdf

としておけば
一応動くものはできそうです。
非常に乱暴なやり方ですので、
あまり参考にならないかもしれないですが・・・

以上です
    • good
    • 0
この回答へのお礼

返答ありがとうございました。
うまく起動できました。
Runtime rt = Runtime.getRuntime();
Process prcs = rt.exec( "C:\\Program Files\\Adobe\\Acrobat 6.0\\Reader\\AcroRd32.exe c:\\tmp\\po.pdf" );

お礼日時:2004/01/14 17:44

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QPDFをAcrobatReaderで表示する方法

ローカルにある
C:\prop\test.pdf
というPDFをAcrobatReaderで表示させるにはどのようにしたらよいでしょうか?
ブラウザにではなく、AcrobatReaderが起動され、表示させたいのです。
色々調べましたが、PDFを生成する方法は見つけられましたが、
表示する方法がわかりません。。。

javaで表示させる方法を教えてください。。。

Aベストアンサー

processを使ってみましょう。

cmd /c start acrord32 + C:\prop\test.pdf

↑をProcessで起動すれば動くはず。

Q文字列から数字を取り出す方法

質問があります。
例えば、テキストファイルから文章を一行ずつ読み込み、それをString型の変数に格納していきます。
その文から数字(整数で、何桁かはわからない。)を取り出し(ちなみにその数字の前後には特定の文字がついています)、変数に格納するというプログラムを作りたいのですが、具体的な方法がわかりません。
よろしければ是非教えてください!

Aベストアンサー

こんな感じですか?
数値以外を除きそのまま代入させます

String str = "ABCDABCD1234512345abcd";
int ret = Integer.parseInt(str.replaceAll("[^0-9]",""));
System.out.println(ret); //結果表示

QSVFの設定について:クラスパスが通ってない?

現在SVF(v6.2c)を使ってアプリを開発しております。
Webアプリケーションではなく、普通(?)のjavaのアプリです。

eclipseで開発しており、eclipseから実行すると無事PDFが出力されるのですが、
アプリをjarにかためてコマンドで実行すると、
「vfreport.properties not found (use default properties)」
というエラーで実行できません。(エラーコードはcode:[-1]です)
調べてパスが通っていないのだとわかったので、
実行PCの環境変数CLASSPATHにsvf.jarを追加したのですが、
それでも同じエラーで実行できません。

追加したパスは、
C:\SVFJP\svfjpd\lib\svf.jar
です。
eclipseの.classpathでのsvf関連のものは、
<classpathentry kind="lib" path="lib/svf/BSPro.jar"/>
<classpathentry kind="lib" path="lib/svf/svfpstat.jar"/>
<classpathentry sourcepath="lib/svf/svfpstat.jar" kind="lib" path="lib/svf/svf.jar"/>
となっています。

クラスパスの通し方が間違っているのでしょうか…?
何かわかる方がいらっしゃいましたら、教えてください。。。

現在SVF(v6.2c)を使ってアプリを開発しております。
Webアプリケーションではなく、普通(?)のjavaのアプリです。

eclipseで開発しており、eclipseから実行すると無事PDFが出力されるのですが、
アプリをjarにかためてコマンドで実行すると、
「vfreport.properties not found (use default properties)」
というエラーで実行できません。(エラーコードはcode:[-1]です)
調べてパスが通っていないのだとわかったので、
実行PCの環境変数CLASSPATHにsvf.jarを追加したのですが、
それでも同じエラ...続きを読む

Aベストアンサー

svf.jar ということは、「SVF for Java Print」を使用していると思います。
その場合でしたら、「vfreport.properties が存在するディレクトリ」をクラスパスに追加すれば読み込んでくれるはずです。
FatJar を使って svf.jar を含めてしまった場合、「svf.jar をクラスパスに追加する」ではだめです。
フォルダをクラスパスに追加してもだめな場合には、Java を起動する際のカレントディレクトリに vfreport.properties 関係を全部置けば大丈夫なはずです。

ちなみに、SVF ライブラリを使用する場合には、設定ファイルは基本的にライブラリと同じフォルダに置くことになっていると思います。
SVF では自身のライブラリの位置を jar プロトコルを分解してネイティブパスを特定し、同じフォルダにある設定ファイルを使用しようとします。
このため FatJar のような Jar in Jar タイプの場合、自身のライブラリの位置をネイティブパス上に特定出来なくなりますので使わない方が無難です。
使う場合には、SVF 関係のライブラリを含めずに、Java を起動するときのクラスパスに追加した方がよいです。

svf.jar ということは、「SVF for Java Print」を使用していると思います。
その場合でしたら、「vfreport.properties が存在するディレクトリ」をクラスパスに追加すれば読み込んでくれるはずです。
FatJar を使って svf.jar を含めてしまった場合、「svf.jar をクラスパスに追加する」ではだめです。
フォルダをクラスパスに追加してもだめな場合には、Java を起動する際のカレントディレクトリに vfreport.properties 関係を全部置けば大丈夫なはずです。

ちなみに、SVF ライブラリを使用する場合には、...続きを読む

Q生成したインスタンスを削除する方法

言語:JAVA

生成したインスタンスを削除するにはどのようにすれば良いでしょうか?

testData = new TestData();

testDataはセッション内に格納してあります。
また、testDataはNULLのままだったり、実際に値が入っていたりもします。

NULLのままだと不具合があるため、NULLの場合は、インスタンスそのものを削除してしまいたいと考えています。
初歩的な質問ですみませんが、教えてください。

よろしくお願いいたします。

Aベストアンサー

浅学なため、TestDataというクラス名と「セッション内に格納」という表現だけからどうしてHttpSessionが出てくるのか分かりませんが...

Javaでは、明示的な操作(C++のdeleteのような)によってインスタンスを削除することはできません。そのインスタンスがどこからも参照されなくなったらGCで消えます。もう要らない(消えてほしい)インスタンスを参照している変数やフィールドにはnullを代入することで参照をなくします。

testData = null;

> NULLのままだと不具合があるため、NULLの場合は、インスタンスそのものを削除してしまいたい

何がNULLだとどのように不都合なのかを説明してもらえると、別の回答がつくかもしれません。


人気Q&Aランキング