質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1151閲覧

Javaプログラムで作成したテキストファイルを自動的に画面上に表示したい

soshin

総合スコア11

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/06/27 05:47

編集2020/06/27 06:44

##前提・実現したいこと
Javaプログラムで.txtファイルを作成し、自動的に画面に表示させたいです。
そのためにまず元からある.txtファイルを自動的に画面に表示させるプログラムを作ろうと思ったのですが、うまくいきません。
##発生している問題・エラーメッセージ
プログラムと同じディレクトリに.txtファイルを配置し、開こうとしても以下のようなエラーメッセージが出ました。

Java

1java.io.IOException: Cannot run program "test.txt": error=2, No such file or directory 2 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) 3 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) 4 at java.base/java.lang.Runtime.exec(Runtime.java:589) 5 at java.base/java.lang.Runtime.exec(Runtime.java:413) 6 at java.base/java.lang.Runtime.exec(Runtime.java:310) 7 at Sample.main(Sample.java:8) 8Caused by: java.io.IOException: error=2, No such file or directory 9 at java.base/java.lang.ProcessImpl.forkAndExec(Native Method) 10 at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:319) 11 at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:250) 12 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) 13 ... 5 more

なので、絶対パスで.txtファイルの場所を指定したところ、以下のようなエラーメッセージが出ました。

Java

1java.io.IOException: Cannot run program "/(場所)/(場所)/(場所)/(場所)/test.txt": error=13, Permission denied 2 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) 3 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) 4 at java.base/java.lang.Runtime.exec(Runtime.java:589) 5 at java.base/java.lang.Runtime.exec(Runtime.java:413) 6 at java.base/java.lang.Runtime.exec(Runtime.java:310) 7 at Sample.main(Sample.java:8) 8Caused by: java.io.IOException: error=13, Permission denied 9 at java.base/java.lang.ProcessImpl.forkAndExec(Native Method) 10 at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:319) 11 at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:250) 12 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) 13 ... 5 more

##該当のソースコード

Java

1import java.io.IOException; 2 3public class Sample { 4 5 public static void main(String[] args) { 6 try { 7 Runtime rt = Runtime.getRuntime(); 8 rt.exec("test.txt"); 9 } catch (IOException ex) { 10 ex.printStackTrace(); 11 } 12 } 13}

###試したこと
これ以外に外部ファイルを画面上に自動的に表示させる方法を調べてみたのですが、方法は見つけられませんでした。

###補足情報
開発環境はmacです。IDEはVScodeで、JDKは最新のものを使っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/06/27 06:01

Macでテキストファイル実行するときってファイル名だけでいけましたっけ。Windowsならいけますけど。
soshin

2020/06/27 06:24

テキストファイルの名前、配置を指定してもエラーメッセージが出てしまいました。 Macでテキストファイルを実行するときはどのように記述すれば良いのでしょうか?
cateye

2020/06/27 06:36 編集

よくわからないので、質問ですが、「自動的に起動」って、textを開くのとは違うのですか? 「自動的に開く」とも書いてあるし・・・
soshin

2020/06/27 06:41

自分のやりたいことは、作成したtextファイルを開いて「画面上に表示する」ことです 書き方が分かりにくくて申し訳ありません。
Daregada

2020/06/27 09:45

textファイルを開いて画面上に表示する機能はtextファイル自身にはありません。
anndonut

2020/06/27 12:21 編集

テキストファイルを何(なに)で表示させたいですか?エディタですか?ブラウザですか?それともダイアログ画面ですか?
soshin

2020/06/27 16:34

エディタで表示させたいです。 Windowsであればメモ帳、Macであればテキストエディットなどが自動で起動するようにしたいです。
cateye

2020/06/27 19:42

いま、~.txtファイルをダブルクリックするとどうなりますか?・・・関連付けはどうなっていますか? ~.txtファイルの「情報を見る」 の「このアプリケーションで開く」は、どうなっていますか? で、“それと同じ”動作をJavaからしたいのですか?・・・と、すると“その”javaプログラムは誰が起動するのですか?
soshin

2020/06/28 04:09

Javaこのアプリケーションで開くに指定しているアプリケーションで開きたかったです。
m.ts10806

2020/06/28 04:16

環境依存するので悪手にも思います。
guest

回答1

0

ベストアンサー

macOSにおいてファイルの種別に応じたプログラムで当該ファイルを自動的に開くには、macOSのターミナル上で使えるopenコマンドで指定すれば良いです。これは、Windowsでのstartコマンドに相当します。ご提示のコードで言えば、開きたいファイルtest.txtopenコマンドの引数に指定するようにします。

Java

1// openコマンド(/usr/bin/open)で 2// カレントディレクトリ下のtest.txtを開く。 3Runtime rt = Runtime.getRuntime(); 4rt.exec("open test.txt");

投稿2020/06/27 19:49

dodox86

総合スコア9256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

soshin

2020/06/28 04:09

できました! ありがとうございます????‍♂️
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問