2

私はEclipseで、ファイルを開く必要のあるプロジェクトに取り組んでいます。期待どおりに機能しています。チェックアウトするためだけにプロジェクトをNetbeansにインポートしましたが、実行するとファイルを開くことができません。この場合、スクリーンショットが最も役立つと思います。

Netbeansの問題のスクリーンショット

問題が何であるかについて何か考えはありますか?プロジェクトのプロパティで実行ディレクトリを明示的に指定しましたが、それでも機能しません。

追加情報:

  • EclipseでJDK1.6を使用していることを思い出しましたが、NetbeansはJDK 1.7を使用しています。ファイルパスの解決は2つのプラットフォーム間で異なる方法で処理されますか?

また、数人のユーザーが提案したように、キャッチブロックに次のように追加しました。

System.err.println(new File(inFileName).getAbsolutePath();

これは、当然のことながら、次を返します。

C:\Users\David\Dev\projects\Autocuration\pearltrees_export_02-07-2012.rdf

4

3 に答える 3

1

URIを手動で作成しようとした後、

System.out.println(new File(System.getProperty("user.dir")).toURI().resolve(inFileName));

次の例外が発生しました。

Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in path at index 32: pearltrees_export_02-07-2012.rdf

32番目の文字がないことを考えると、printStackTraceメソッドは、印刷する前に例外メッセージから取得した文字列をトリミングする必要があると思います。

いずれにせよ、Netbeansは''(スペース)文字を区切り文字として使用してRun引数を解析しているように見えます。ただし、引数をmainメソッドに渡すときに、そのスペースも含まれます。言い換えれば、私は開こうとしていました:

"pearltrees_export_02-07-2012.rdf "

それよりも:

"pearltrees_export_02-07-2012.rdf"

引数をトリミングするだけで問題が解決します。

inStream = new FileInputStream(new File(inFileName.trim()));

とにかく、これが意図された動作であると述べているドキュメントは見つかりません。これは、javaバイナリの動作(および私が知っている他のエディタ)とは確かに異なるためです。このため、私はこれをバグと見なし、バグレポートを提出しました。

http://netbeans.org/bugzilla/show_bug.cgi?id=215429

Netbeansの仲間が何を言わなければならないかがわかると思います。

于 2012-07-11T21:30:10.683 に答える
0

同じOSですか?同じファイル名?表示されたメッセージによると、ファイル名に問題があるようです。

于 2012-07-11T19:02:21.980 に答える
0

catchブロックに、これを追加する必要があります。

System.err.println(new File(inFileName).getAbsolutePath());
于 2012-07-11T19:05:55.937 に答える