質問編集履歴

2

内容の修正

2019/12/26 05:32

投稿

takutomi
takutomi

スコア7

test CHANGED
@@ -1 +1 @@
1
- jarファイルのでのリソースの扱い(mp3ファイル,xlsxファイル)
1
+ java:エクセルファイルのスの取得方法
test CHANGED
@@ -2,21 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- javafxにてアプリを作成しています
5
+ javafxにてアプリを作成しています
6
6
 
7
- 実行可能jarファイルにしたときのリソースファイルのパスの取得で手こずっています。
8
-
9
- 取得したいファイルの拡張子はmp3とxlsxです
10
-
11
-
12
-
13
- http://www.mltlab.com/wp/archives/546 
14
-
15
- (jarにする時の注意:リソースはURL指定)
16
-
17
-
18
-
19
- こちらサイトなど参考にしたのですがうまくいかず困っています
7
+ エクセルファイルパスの取得方法絶対パスから変更したのですがうまくいかず困っています
20
8
 
21
9
 
22
10
 
@@ -24,27 +12,17 @@
24
12
 
25
13
 
26
14
 
27
- mp3ファイル
28
15
 
29
- eclipse上:うまく再生された
30
16
 
17
+ コメントアウトしているほうだと下記エラーが出ます
18
+
31
- 実行可能jar:エラー java.lang.UnsupportedOperationException: Unsupported protocol "rsrc"
19
+ java.io.FileNotFoundException: file:\C:\pleiades\workspace\test\bin\res\book.xlsx (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。)」
20
+
21
+ パスの取得自体はうまくできているのですが,そのパスを使用するとエラーがでます
32
22
 
33
23
 
34
24
 
35
- xlxsファイル
36
-
37
- eclipse上:そもそもURL(コメントアウトしているほう)だと下記エラーが出るためダウンロードフォルダにあるほうのファイルを絶対パスで指定
25
+ ダウンロードフォルダにあるほうのファイルを絶対パスで指定するとエラーはでないのですが
38
-
39
- 「java.io.FileNotFoundException: file:\C:\pleiades\workspace\test\bin\res\book.xlsx (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。)」
40
-
41
- 実行可能jar:一応URLは取得できている??
42
-
43
-
44
-
45
- 説明が下手で申し訳ありませんが下記にコードと実行結果を載せておきます。
46
-
47
- よろしくお願いします。
48
26
 
49
27
 
50
28
 
@@ -74,15 +52,9 @@
74
52
 
75
53
  import javafx.application.Application;
76
54
 
77
- import javafx.geometry.Insets;
78
-
79
55
  import javafx.scene.Scene;
80
56
 
81
- import javafx.scene.control.Label;
82
-
83
57
  import javafx.scene.layout.BorderPane;
84
-
85
- import javafx.scene.media.Media;
86
58
 
87
59
  import javafx.scene.media.MediaPlayer;
88
60
 
@@ -110,45 +82,9 @@
110
82
 
111
83
  BorderPane root = new BorderPane();
112
84
 
113
- root.setPadding(new Insets(10, 5, 10, 5));
114
-
115
85
  Scene scene = new Scene(root,850,100);
116
86
 
117
87
 
118
-
119
- //サウンド
120
-
121
- try {
122
-
123
- URL url = this.getClass().getClassLoader().getResource("res/sample.mp3");
124
-
125
-
126
-
127
- Label label = new Label("mp3 → " + url.toString());
128
-
129
- root.setTop(label);
130
-
131
-
132
-
133
- Media music = new Media(url.toString());
134
-
135
- musicPlay = new MediaPlayer(music);
136
-
137
- musicPlay.play();
138
-
139
-
140
-
141
- }catch(Exception e) {
142
-
143
- Label label = new Label("mp3 エラー " + e.toString());
144
-
145
- root.setTop(label);
146
-
147
- }
148
-
149
-
150
-
151
- //エクセル
152
88
 
153
89
  XSSFSheet sheetMain;
154
90
 
@@ -156,39 +92,41 @@
156
92
 
157
93
 
158
94
 
95
+
96
+
159
97
  try {
160
98
 
99
+
100
+
161
101
  XSSFRow row = null;
102
+
103
+
104
+
105
+ URL url = getClass().getClassLoader().getResource("res/book.xlsx");
106
+
107
+ System.out.println(url.toString());
108
+
109
+
110
+
111
+
112
+
113
+ //こっちだとエラー workbook = new XSSFWorkbook(new FileInputStream(url.toString()));
114
+
115
+
162
116
 
163
117
  URL url = getClass().getClassLoader().getResource("res/book.xlsx");
164
118
 
165
119
 
166
120
 
167
- Label label = new Label("xlsx → " + url.toString());
121
+ }catch (Exception e) {
168
122
 
169
- root.setBottom(label);
123
+ e.printStackTrace();
124
+
125
+ System.out.println("処理が失敗しました");
126
+
127
+ }
170
128
 
171
129
 
172
-
173
- workbook = new XSSFWorkbook(new FileInputStream("E:/ダウンロード/book.xlsx"));
174
-
175
- //こっちだとエラー workbook = new XSSFWorkbook(new FileInputStream(url.toString()));
176
-
177
-
178
-
179
- }
180
-
181
- catch (Exception e) {
182
-
183
-
184
-
185
- Label label = new Label("xlsx エラー " + e.toString());
186
-
187
- root.setBottom(label);
188
-
189
-
190
-
191
- }
192
130
 
193
131
 
194
132
 
@@ -214,8 +152,6 @@
214
152
 
215
153
  }
216
154
 
217
-
218
-
219
155
  ```
220
156
 
221
157
 
@@ -230,18 +166,6 @@
230
166
 
231
167
 
232
168
 
233
- ![イメージ説明](0cf692c5b2ed16279d1764e24d544848.png)
234
-
235
- eclipseでの上記コード実行結果
236
-
237
-
238
-
239
- ![イメージ説明](77cab72567a0f961bf740889bb60d92b.png)
240
-
241
- 実行可能jarにした結果
242
-
243
-
244
-
245
169
  ### 補足情報(FW/ツールのバージョンなど)
246
170
 
247
171
 

1

誤字

2019/12/26 05:32

投稿

takutomi
takutomi

スコア7

test CHANGED
File without changes
test CHANGED
@@ -24,204 +24,200 @@
24
24
 
25
25
 
26
26
 
27
+ mp3ファイル
28
+
29
+ eclipse上:うまく再生された
30
+
31
+ 実行可能jar:エラー java.lang.UnsupportedOperationException: Unsupported protocol "rsrc"
32
+
33
+
34
+
35
+ xlxsファイル
36
+
37
+ eclipse上:そもそもURL(コメントアウトしているほう)だと下記エラーが出るためダウンロードフォルダにあるほうのファイルを絶対パスで指定
38
+
39
+ 「java.io.FileNotFoundException: file:\C:\pleiades\workspace\test\bin\res\book.xlsx (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。)」
40
+
41
+ 実行可能jar:一応URLは取得できている??
42
+
43
+
44
+
45
+ 説明が下手で申し訳ありませんが下記にコードと実行結果を載せておきます。
46
+
47
+ よろしくお願いします。
48
+
49
+
50
+
51
+ ### 該当のソースコード
52
+
53
+
54
+
55
+ ```java
56
+
57
+ package application;
58
+
59
+
60
+
61
+ import java.io.FileInputStream;
62
+
63
+ import java.net.URL;
64
+
65
+
66
+
67
+ import org.apache.poi.xssf.usermodel.XSSFRow;
68
+
69
+ import org.apache.poi.xssf.usermodel.XSSFSheet;
70
+
71
+ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
72
+
73
+
74
+
75
+ import javafx.application.Application;
76
+
77
+ import javafx.geometry.Insets;
78
+
79
+ import javafx.scene.Scene;
80
+
81
+ import javafx.scene.control.Label;
82
+
83
+ import javafx.scene.layout.BorderPane;
84
+
85
+ import javafx.scene.media.Media;
86
+
87
+ import javafx.scene.media.MediaPlayer;
88
+
89
+ import javafx.stage.Stage;
90
+
91
+
92
+
93
+
94
+
95
+ public class Main extends Application {
96
+
97
+
98
+
99
+ public MediaPlayer musicPlay;
100
+
101
+
102
+
103
+
104
+
105
+ @Override
106
+
107
+ public void start(Stage primaryStage) {
108
+
109
+
110
+
111
+ BorderPane root = new BorderPane();
112
+
113
+ root.setPadding(new Insets(10, 5, 10, 5));
114
+
115
+ Scene scene = new Scene(root,850,100);
116
+
117
+
118
+
119
+ //サウンド
120
+
121
+ try {
122
+
123
+ URL url = this.getClass().getClassLoader().getResource("res/sample.mp3");
124
+
125
+
126
+
127
+ Label label = new Label("mp3 → " + url.toString());
128
+
129
+ root.setTop(label);
130
+
131
+
132
+
133
+ Media music = new Media(url.toString());
134
+
135
+ musicPlay = new MediaPlayer(music);
136
+
137
+ musicPlay.play();
138
+
139
+
140
+
141
+ }catch(Exception e) {
142
+
143
+ Label label = new Label("mp3 エラー " + e.toString());
144
+
145
+ root.setTop(label);
146
+
147
+ }
148
+
149
+
150
+
151
+ //エクセル
152
+
153
+ XSSFSheet sheetMain;
154
+
155
+ XSSFWorkbook workbook;
156
+
157
+
158
+
159
+ try {
160
+
161
+ XSSFRow row = null;
162
+
163
+ URL url = getClass().getClassLoader().getResource("res/book.xlsx");
164
+
165
+
166
+
167
+ Label label = new Label("xlsx → " + url.toString());
168
+
169
+ root.setBottom(label);
170
+
171
+
172
+
173
+ workbook = new XSSFWorkbook(new FileInputStream("E:/ダウンロード/book.xlsx"));
174
+
175
+ //こっちだとエラー workbook = new XSSFWorkbook(new FileInputStream(url.toString()));
176
+
177
+
178
+
179
+ }
180
+
181
+ catch (Exception e) {
182
+
183
+
184
+
185
+ Label label = new Label("xlsx エラー " + e.toString());
186
+
187
+ root.setBottom(label);
188
+
189
+
190
+
191
+ }
192
+
193
+
194
+
195
+
196
+
197
+ primaryStage.setScene(scene);
198
+
199
+ primaryStage.show();
200
+
201
+
202
+
203
+ }
204
+
205
+
206
+
207
+ public static void main(String[] args) {
208
+
209
+ launch(args);
210
+
211
+ }
212
+
213
+
214
+
215
+ }
216
+
217
+
218
+
27
219
  ```
28
220
 
29
- mp3ファイル
30
-
31
- eclipse上:うまく再生された
32
-
33
- 実行可能jar:エラー java.lang.UnsupportedOperationException: Unsupported protocol "rsrc"
34
-
35
-
36
-
37
- xlxsファイル
38
-
39
- eclipse上:そもそもURL(コメントアウトしているほう)だと下記エラーが出るためダウンロードフォルダにあるほうのファイルを絶対パスで指定
40
-
41
- 「java.io.FileNotFoundException: file:\C:\pleiades\workspace\test\bin\res\book.xlsx (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。)」
42
-
43
- 実行可能jar:一応URLは取得できている??
44
-
45
-
46
-
47
- 説明が下手で申し訳ありませんが下記にコードと実行結果を載せておきます。
48
-
49
- よろしくお願いします。
50
-
51
- ```
52
-
53
-
54
-
55
- ### 該当のソースコード
56
-
57
-
58
-
59
- ```java
60
-
61
- package application;
62
-
63
-
64
-
65
- import java.io.FileInputStream;
66
-
67
- import java.net.URL;
68
-
69
-
70
-
71
- import org.apache.poi.xssf.usermodel.XSSFRow;
72
-
73
- import org.apache.poi.xssf.usermodel.XSSFSheet;
74
-
75
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
76
-
77
-
78
-
79
- import javafx.application.Application;
80
-
81
- import javafx.geometry.Insets;
82
-
83
- import javafx.scene.Scene;
84
-
85
- import javafx.scene.control.Label;
86
-
87
- import javafx.scene.layout.BorderPane;
88
-
89
- import javafx.scene.media.Media;
90
-
91
- import javafx.scene.media.MediaPlayer;
92
-
93
- import javafx.stage.Stage;
94
-
95
-
96
-
97
-
98
-
99
- public class Main extends Application {
100
-
101
-
102
-
103
- public MediaPlayer musicPlay;
104
-
105
-
106
-
107
-
108
-
109
- @Override
110
-
111
- public void start(Stage primaryStage) {
112
-
113
-
114
-
115
- BorderPane root = new BorderPane();
116
-
117
- root.setPadding(new Insets(10, 5, 10, 5));
118
-
119
- Scene scene = new Scene(root,850,100);
120
-
121
-
122
-
123
- //サウンド
124
-
125
- try {
126
-
127
- URL url = this.getClass().getClassLoader().getResource("res/sample.mp3");
128
-
129
-
130
-
131
- Label label = new Label("mp3 → " + url.toString());
132
-
133
- root.setTop(label);
134
-
135
-
136
-
137
- Media music = new Media(url.toString());
138
-
139
- musicPlay = new MediaPlayer(music);
140
-
141
- musicPlay.play();
142
-
143
-
144
-
145
- }catch(Exception e) {
146
-
147
- Label label = new Label("mp3 エラー " + e.toString());
148
-
149
- root.setTop(label);
150
-
151
- }
152
-
153
-
154
-
155
- //エクセル
156
-
157
- XSSFSheet sheetMain;
158
-
159
- XSSFWorkbook workbook;
160
-
161
-
162
-
163
- try {
164
-
165
- XSSFRow row = null;
166
-
167
- URL url = getClass().getClassLoader().getResource("res/book.xlsx");
168
-
169
-
170
-
171
- Label label = new Label("xlsx → " + url.toString());
172
-
173
- root.setBottom(label);
174
-
175
-
176
-
177
- workbook = new XSSFWorkbook(new FileInputStream("E:/ダウンロード/book.xlsx"));
178
-
179
- //こっちだとエラー workbook = new XSSFWorkbook(new FileInputStream(url.toString()));
180
-
181
-
182
-
183
- }
184
-
185
- catch (Exception e) {
186
-
187
-
188
-
189
- Label label = new Label("xlsx エラー " + e.toString());
190
-
191
- root.setBottom(label);
192
-
193
-
194
-
195
- }
196
-
197
-
198
-
199
-
200
-
201
- primaryStage.setScene(scene);
202
-
203
- primaryStage.show();
204
-
205
-
206
-
207
- }
208
-
209
-
210
-
211
- public static void main(String[] args) {
212
-
213
- launch(args);
214
-
215
- }
216
-
217
-
218
-
219
- }
220
-
221
-
222
-
223
- ```
224
-
225
221
 
226
222
 
227
223
  ### 画像