Project名、Package名を英字以外使うな!謎エラーの元
IDEを使ったJavaを勉強の中にハマったので、警鐘記事
Project名、Package名を英字以外使うな!謎エラーの元
分かりやすく日本語でえぇやん!? 英語が決まらないし! それでも英語使え
どうしても迷ったら、ネーミングcodicかGoogle翻訳を使え. ↓みたいな謎エラー吐かれるぞ
エラー:Internal error: (java.nio.file.InvalidPathException) Illegal char <?> at index 46: D:/Downloads/Projects/IdeaProjects/imooc/Java入?第一季 java.nio.file.InvalidPathException: Illegal char <?> at index 46: D:/Downloads/Projects/IdeaProjects/imooc/Java入?第一季 at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) at java.nio.file.Paths.get(Paths.java:84) at org.jetbrains.jps.model.serialization.JpsProjectLoader.loadProject(JpsProjectLoader.java:82) at org.jetbrains.jps.model.serialization.impl.JpsSerializationManagerImpl.loadModel(JpsSerializationManagerImpl.java:42) at org.jetbrains.jps.cmdline.JpsModelLoaderImpl.loadModel(JpsModelLoaderImpl.java:50) at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:80) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:265) at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:121) at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:228) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
っていうか、このエラー何?
私が知りたい 色々調べてみたが、これと言って日本語で理解できそうなアンサーが見つかりませんでした.未だにメッセージで何を言われているのかすら謎です.
なんでエラー吐いたの?
A. 学習ユニット毎にフォルダー分けしたかった.
学習のために色々文法学ぶでしょ? 実際、動画講座を見て、Java勉強していたんだけど、動画自体「Java入門シーズン1、シーズン2、シーズン3」の3つのプレイリストに分かれていて、 「Java入門シーズン1」の中でも 第1章、2章、3章、4章に別れているのさ
これ見て、生真面目な人は 1.動画サイト名でフォルダー作って、 2.1の下に Java入門 のサブフォルダを作成して 3.シーズンごとに、更に章毎に細かく分けたい って考えるでしょ?
そして、IDE IntelliJ IDEAを開いて、Project名にサイト名作って、その中でディレクトリー...これに当たるPackageを次々と作っていくでしょ? 結果、変なエラーを吐いて、対処に2,3時間捨てる羽目になるのよ...
原点に戻ってたどり着いた答え.
英語以外使うな!! そして、教わってないことを勝手に「多分(これとあれが似てるから)こうだろ?」で判断して行動するな!! ← 今回の教訓
公式ドキュメント:初めてのJavaアプリケーションを作成する ここにたどり着き、その通りに沿ってProject
とPackage
を作ったら、エラーが消えました.
書いたJavaのコードは一緒.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!!"); } }
「ちなみに」 と 「それでも」
Javaではプロジェクト名、パッケージ名、変数名で英語以外、つまり日本語使うこともできる.
それでもエラー原因となる要素を増やすべきではない. 道具の使い方がわからい内は 特に.