通常は、下記のような記述をすれば、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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaでhtmlファイルを開く方法
-
lang 英語と日本語など混ざる時は
-
ラミチエ
-
複数のファイルをdiffで比較す...
-
安楽死についてのレポート
-
JSPでincludeファイルの日本語...
-
ドライアイスの持続時間
-
ゆうぱっく、午前中指定で埼玉→...
-
RedHat7.3 apache-2 ユーザーの...
-
Excelで、社外秘(閲覧のみ)と...
-
HTMLからフォルダを開きたい
-
ホームページでファイルをダウ...
-
htmlファイルの表示が真っ白
-
フレーム内のPHPへPOSTで情報を...
-
htmlの中にexcelが埋め込むには...
-
Dreamweaverでページ全体が文字...
-
googleドライブで、PDFファイル...
-
Webサイトから、txtファイルを...
-
HTMLで別PCのフォルダを開く
-
iPadの標準ブラウザでローカルH...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
noindexタグを試作ページの段階...
-
lang 英語と日本語など混ざる時は
-
Excel VBA :URLの中で変数を使...
-
javaでhtmlファイルを開く方法
-
インラインフレームの横スクロ...
-
iframeの中のページのリンクを...
-
相対パスでリンクできない
-
ベーシック認証時、キャンセル...
-
html4.01とxhtmlではレスポンシ...
-
複数のファイルをdiffで比較す...
-
寿司ネタの名前
-
メール本文に変な文字が
-
You Are The Sunshine Of My Li...
-
薬事法とGMPって一緒なんで...
-
htaccessのリダイレクトで、特...
-
中埜酢店 のよみかた
-
甲府市にあった穂積という料亭...
-
鉄腕アトム:トビオの母親
-
2ちゃんねるの過去ログってど...
-
相対パスから絶対パスの取得
おすすめ情報