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

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

新規登録して質問してみよう
ただいま回答率
85.47%
参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

ファイル

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

Java

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

Q&A

0回答

1205閲覧

JAVA呼出しで別サーバーに存在するファイルを参照できない

ejy_jy

総合スコア0

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

ファイル

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

Java

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

0グッド

0クリップ

投稿2021/11/26 02:20

編集2021/11/26 07:40

前提・実現したいこと

JAVAにて、別サーバー(PC)に存在するExcelを参照しExcel出力する処理を作成しました。
しかし、エラーメッセージが出力しExcelの参照から出力ができない状態です。

発生している問題・エラーメッセージ

java.io.FileNotFoundException: \(指定フォルダ)\TEST.xls (アクセスが拒否されました。)

該当のソースコード

String path_in = "//(IPアドレス)/(フォルダ)/(フォルダ)/(フォルダ)/TEST/"; String path = path_in + "TEST.xls"; InputStream is = new FileInputStream(path);

試したこと

・JAVA経由ではなく、エクスプローラーより直接対象フォルダにアクセスすることは可能
・対象フォルダの設定にて、下記内容で追加
Everyone 読み取り/書き込み
・JAVAを呼び出す環境と同一環境(Cドライブ配下)へのフォルダアクセスすることは可能
(例:C:\TEST\TEST.xls)
・"//(IPアドレス)/(フォルダ)/(フォルダ)/(フォルダ)/TEST/"を
"¥¥¥¥(IPアドレス)¥¥(フォルダ)¥¥(フォルダ)¥¥(フォルダ)¥¥TEST¥¥"に変更してもエラー解消せず
※インターネットにて調査し実践しましたが、改善に至りませんでした。

補足情報(FW/ツールのバージョンなど)

JAVAは単体で呼び出しておりますが、開発ツールを使用し作成した画面より呼出しをしています。
(別のJAVA呼出しで問題なくできているため、今回の問題には影響ないと思われます。)

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

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

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

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

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

dodox86

2021/11/26 02:30 編集

> "//(指定フォルダ)/TEST/" UNCパスですよね。そうだとしたら指定の仕方がおかしいと思うのですが。 UNCパスとは、"\\サーバー名\フォルダ名\ファイル名"のような形式をいいます。で、UNCパスだとFileInputStream()などのファイルアクセスAPIで開けなかったと思います。(ちょっと不確かですが)
Luice

2021/11/26 02:35

気になって確認してみましたが "//host/path/" でも "\\\\host\\path" でも通ったので、 そこは問題なさそうです。
Luice

2021/11/26 02:39

ほぼほぼ環境要因だと思います。 別サーバーのフォルダをドライブルートにマウントして どうなるか検証してみるくらいしか思いつかないです。
ejy_jy

2021/11/26 02:53

依頼いただきありがとうございます。 JAVAソースに\\サーバー名\フォルダ名\ファイル名と記載しますと、 ビルドエラーになってしまい//(指定フォルダ)/TEST/のように記載しています。 同一環境のCドライブを参照する際にC:/TEST/で参照できたため、問題ないと思われます。 また、ドライブルートにマウントする方法についてご教示ありがとうございます。 インターネット等で調査し、検証してみます。
Luice

2021/11/26 02:57

↑に書いたけど、\はエスケープ必要だから\\\\サーバー名\\フォルダ名 ですよ?
dodox86

2021/11/26 02:58

Luiceさん、ご指摘ありがとうございます。その通りですね。こちらでも再度確認しました。 「java.io.FileNotFoundException:」だけど「 アクセスが拒否されました。」というのが妙です。指定のフォルダー(ディレクトリ)下の閲覧の権限が無いのかもしれません。
dodox86

2021/11/26 03:01

> JAVAソースに\\サーバー名\フォルダ名\ファイル名と記載しますと、 ビルドエラーになってしまい それは\文字エスケープの問題です。'\'の字は、エスケープする必要があり、"\\"とコードに書きます。
dodox86

2021/11/26 03:11

あと、ファイルを開こうとして間違えてディレクトリを指定すると「「java.io.FileNotFoundException:」で「 アクセスが拒否されました。」になりますが、今回はそれには当たらなそうです。
ejy_jy

2021/11/26 04:15

質問内容修正いたしました。 ご指摘ありがとうございます。
dodox86

2021/11/26 05:52

どうも気になりますが、UNCパスは"\\サーバー"から始まるもので、「\\(指定フォルダ)\TEST.xls」 だとその指定フォルダの名前をサーバーとして認識してしまいます。その辺り、正しく記載していますか。妙に編集しないで、現状のコードのまま提示した方が良いように思います。
ejy_jy

2021/11/26 07:37

実際に記載している内容はこのような感じです。 \\\\(IPアドレス)\\(フォルダ)\\(フォルダ)\\(フォルダ)\\TEST\\TEST.xls 個人情報の兼ね合いで、省略しておりました。編集します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問