前提・実現したいこと
javafxにてアプリを作成しています
エクセルファイルのパスの取得方法を絶対パスから変更したいのですがうまくいかず困っています
発生している問題・エラーメッセージ
コメントアウトしているほうだと下記エラーが出ます
「java.io.FileNotFoundException: file:\C:\pleiades\workspace\test\bin\res\book.xlsx (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。)」
パスの取得自体はうまくできているのですが,そのパスを使用するとエラーがでます
ダウンロードフォルダにあるほうのファイルを絶対パスで指定するとエラーはでないのですが
該当のソースコード
java
1package application; 2 3import java.io.FileInputStream; 4import java.net.URL; 5 6import org.apache.poi.xssf.usermodel.XSSFRow; 7import org.apache.poi.xssf.usermodel.XSSFSheet; 8import org.apache.poi.xssf.usermodel.XSSFWorkbook; 9 10import javafx.application.Application; 11import javafx.scene.Scene; 12import javafx.scene.layout.BorderPane; 13import javafx.scene.media.MediaPlayer; 14import javafx.stage.Stage; 15 16 17public class Main extends Application { 18 19 public MediaPlayer musicPlay; 20 21 22 @Override 23 public void start(Stage primaryStage) { 24 25 BorderPane root = new BorderPane(); 26 Scene scene = new Scene(root,850,100); 27 28 XSSFSheet sheetMain; 29 XSSFWorkbook workbook; 30 31 32 try { 33 34 XSSFRow row = null; 35 36 URL url = getClass().getClassLoader().getResource("res/book.xlsx"); 37 System.out.println(url.toString()); 38 39 40//こっちだとエラー workbook = new XSSFWorkbook(new FileInputStream(url.toString())); 41 42 URL url = getClass().getClassLoader().getResource("res/book.xlsx"); 43 44 }catch (Exception e) { 45 e.printStackTrace(); 46 System.out.println("処理が失敗しました"); 47 } 48 49 50 51 primaryStage.setScene(scene); 52 primaryStage.show(); 53 54 } 55 56 public static void main(String[] args) { 57 launch(args); 58 } 59 60}
画像
補足情報(FW/ツールのバージョンなど)
環境
eclipse
java8
Apache POI(エクセルファイルを扱うライブラリ)
回答1件
あなたの回答
tips
プレビュー