
通常は、下記のような記述をすれば、html.htmlファイルを開けると思うのですが開けせん。どうすれば、開くことができますか?
また、ディスクトップで実行しているのですが、Javaファイルと同じディレクトリ(デスクトップ)にあるhtml.htmlファイルを開くことはできないのしょうか?
相対パスで記述するとエラーになります。
初歩的な質問かもしれませんが、ご教示、宜しくお願い致します。
String[] cmd = {"C:\\html.html"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);

No.3ベストアンサー
- 回答日時:
Windowsをご利用の場合、下のような記述で関連付け起動ができます。
try {
//絶対パスの例
String cmd = "C:\\html.html";
Runtime.getRuntime().exec("cmd /c start " + cmd);
//相対パスの例
File file = new File("html.html");
cmd = file.getAbsolutePath();
Runtime.getRuntime().exec("cmd /c start " + cmd);
} catch (IOException e) {
e.printStackTrace();
}
Javaの基本APIで関連付け起動を行う方法は、おそらくありません。私が不勉強なだけかもしれませんが。
もしもこれ以上細やかな動作が必要でしたら、JNIを使うかShellExecute API を利用するアプリケーションをC言語などで作成することをご検討ください。
ちなみに、下の例で起動する場合
{"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE C:\\html.html"}を
{"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE", "C:\\html.html"}
に変えればうまくいくと思います。
回答いただきありがとうございます。
ばっちり、動きました。ありがとうございます!!
また、こんなに簡単に、絶対パスを得る方法があったのですね。ありがとうございました。
No.5
- 回答日時:
こんにちは。
String配列は使っていません。邪道なのかな?
class openhtml{
public static void main(String[] args){
String str = "explorer C:\\html.html";
Runtime rt = Runtime.getRuntime();
try{
Process pr = rt.exec(str);
}
catch(Exception e)
{
System.out.print(e); //エラー出力
}
}
}
No.4
- 回答日時:
>String[] cmd = {"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE C:\\html.html"};
>Runtime rt = Runtime.getRuntime();
>Process pr = rt.exec(cmd);
Runtime#execの使い方が間違っています。ちゃんとJavaDocを読みましょう。
Runtime#exec(String[])で実行させる場合は、プログラムと引数を明確に区分けする必要があります。今回の場合は以下のようにcmdに代入します。
String[] cmd = {"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE", "C:\\html.html"};
またはRuntime#exec(String)を使用して以下のように実行させます。
String cmd = "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE C:\\html.html";
Process pr = Runtime.getRuntime().exec(cmd)
No.2
- 回答日時:
htmlファイルを開くというのはブラウザで開くということでいいですよね?
↑ということで回答します。
コマンドプロンプトで
C:\html.html
と入力してenterしてブラウザが起動します?
自分のでは…起動しませんでした。
まぁ、考えてみれば当たり前なんですが、
自分のPCのブラウザは「IE」です。
こいつの実行ファイルは
C:\Program Files\Internet Explorer\IEPLORE.EXE
です。
ですので、コマンドプロンプトから
"C:\Program Files\Internet Explorer\IEPLORE.EXE" C:\hoge.html
と入力するとちゃんとhoge.htmlがブラウザから開けます。
ということで、
String[] cmd = {"~"};
の配列の中にちゃんとブラウザの実行ファイルの絶対パス、開きたいhtmlファイルの絶対パスを入れれば開けるはずです。
相対パスにするのなら
ブラウザの実行ファイルの相対パス:javaコマンドを実行するディレクトリからの相対パス
HTMLファイルの相対パス:ブラウザの実行ファイルのあるディレクトリからの相対パス
で記述する必要があります。
あと、ブラウザの実行ファイルがあるディレクトリにPATHの設定をしておけば、ブラウザの実行ファイルは絶対パスや相対パスは必要なく、実行ファイル名だけでOKですね。
この回答への補足
早速、回答いただきありがとうございます。
現在、下記のように、書き換えてみたのですが、残念ながらうまくいきませんでした。
多分、ファイルをIEに渡すのができていないのだと思いますが・・・
また、相対パスでもやってみたのですが、うまくいきません。どこか、間違っていますでしょうか?
String[] cmd = {"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE C:\\html.html"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);
String[] cmd = {"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE .\\html.html"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);
---
ちなみに、私のPCではパスがどこかで指定されているのかも??
c:\html.html
で自動的にIEで開いてくれるみたいです。
No.1
- 回答日時:
htmlファイルを開くというのはブラウザで開くということでいいですよね?
↑ということで回答します。
コマンドプロンプトで
C:\html.html
と入力してenterしてブラウザが起動します?
自分のでは…起動しませんでした。
まぁ、考えてみれば当たり前なんですが、
自分のPCのブラウザは「IE」です。
こいつの実行ファイルは
C:\Program Files\Internet Explorer\IEPLORE.EXE
です。
ですので、コマンドプロンプトから
"C:\Program Files\Internet Explorer\IEPLORE.EXE" C:\hoge.html
と入力するとちゃんとhoge.htmlがブラウザから開けます。
ということで、
String[] cmd = {"~"};
の配列の中にちゃんとブラウザの実行ファイルの絶対パス、開きたいhtmlファイルの絶対パスを入れれば開けるはずです。
相対パスにするのなら
ブラウザの実行ファイルの相対パス:javaコマンドを実行するディレクトリからの相対パス
HTMLファイルの相対パス:ブラウザの実行ファイルのあるディレクトリからの相対パス
で記述する必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTMLを正しく表示させるには 2 2023/06/18 09:12
- Yahoo!メール メールに添付されたhtmlファイルを開く方法 2 2022/10/24 20:19
- JavaScript 【GAS】WEBアプリでハイパーリンクを挿入したい 1 2023/03/12 19:20
- HTML・CSS CSSファイルの日本語コメントが文字化けしてしまう 3 2022/12/26 15:50
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- Chrome(クローム) タスクバーにローカルのhtmlのリンクをchromeで留めてダブルクリックして使うことできますか? 1 2023/08/26 18:13
- HTML・CSS VSコードでHTMLに(リンク)ファイル名をクリックしてもファイルが開かれない 1 2023/02/12 07:52
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
見れる方・・
-
ファーストフード
-
皆さんが、教えてgoo!を知った...
-
Excel VBA :URLの中で変数を使...
-
You Are The Sunshine Of My Li...
-
perlで異なる名前のファイルを...
-
HTMLからフォルダを開きたい
-
Excelで、社外秘(閲覧のみ)と...
-
iPadの標準ブラウザでローカルH...
-
社内で利用するWebサイトを立ち...
-
Webサイトから、txtファイルを...
-
HTMLページが勝手にダウンロー...
-
form action="#"
-
テキストエディタ grepの機能...
-
Select Case について
-
css ,videotタグ。ホームページ...
-
ページ切り替え時に音を鳴らし...
-
テキストエディタvscodeでプロ...
-
VBAで#Regionに変わるものは無...
-
ソースの追加行数と変更行数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクオスケータイ4、アクオス...
-
アクオスケータイ4、アクオス...
-
iframeの中のページのリンクを...
-
javaでhtmlファイルを開く方法
-
ベーシック認証時、キャンセル...
-
メール本文に変な文字が
-
Excel VBA :URLの中で変数を使...
-
IEを操作し、前のページへ戻る方法
-
lang 英語と日本語など混ざる時は
-
JSPでincludeファイルの日本語...
-
拡張子「.stm」について
-
相対パスから絶対パスの取得
-
フォルダの中の特定のファイル...
-
中埜酢店 のよみかた
-
とりあえずこのカテゴリーで・...
-
ホームページの検索エンジン登録
-
FireFoxのNoScriptお使いの方へ...
-
YahooBBで自宅サーバー
-
風船のようなもの
-
複数のファイルをdiffで比較す...
おすすめ情報