47076


D:¥dev¥java¥20180729  
という位置にあるmainクラスのパッケージ名を  
dev.java.20180729  
にしたところエラーが出ました。  
ネット上で調べて見ても「ディレクトリの階層と同じ様に付ける。」というような事しか書いてなく、私物の本にも同じような事が書いて有ります。どの様にするのが正解なのでしょうか。

ちなみにこのようなコードでこのようなエラーが出ました

ソース

[code]

    package "dev.java.20180729";
    
    public class Main{
        public static void main(String [] args){
            System.out.println("HelloWorld");
        }
    }
    
[/code]

エラー  
[Java] Syntax error on tokens, delete these tokens


CC BY-SA 4.0
2018-07-29T07:30:09.233
47074
2018-07-29T13:14:23.493
2018-07-29T13:14:23.493
3054
29275
question
java
日付を使用したJavaのパッケージ名がエラーになる


質問の例で言うと、`20180729`がパッケージ名の命名規約に違反しているためと思います。  
最初の文字は[`Character.isJavaIdentifierStart(int
codepoint)`](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Character.html#isJavaIdentifierStart-
int-)が`true`を返す文字である必要があり、慣例的に言えば、アルファベットである必要がある、ということです。

＃厳密にどの文字が使えるかは、上記文書を参照してください。(※Java8のjavadocです)

ちなみに、2文字目以降については[`Character.isJavaIdentifierPart(int
codepoint)`](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Character.html#isJavaIdentifierPart-
int-)で判断します。

＃数字も利用可能です。

* * *

なので、

> 「ディレクトリの階層と同じ様に付ける。」

というよりは、

> パッケージ名と同じ階層のディレクトリを作成し、そこにファイルを配置する。

と理解するのがよいと思います。

### 追記

ソースコード例が追記されたので、回答を追記します。

[code]

    package "dev.java.20180729";
    
[/code]

の箇所のダブルクオートは不要です。  
前述の回答と合わせると、例えば`20180729`を`d20180729`にして、

[code]

    package dev.java.d20180729;
    
[/code]

と記述すればよいです。(当然ファイルは`dev\java\d20180729`以下に配置)


CC BY-SA 4.0
2018-07-29T12:29:51.590
47076
2018-07-29T13:03:31.580
2018-07-29T13:03:31.580
20098
20098
47074
answer