2017-01-25 4 views
6

Ich versuche zu laufen unter Code mit jdk-9 aber vor Problem bei der Kompilierung mit dem BefehlWie in Jdk9/java-9

Befehl

javac -d mods .\module-info.java com\nirav\modi\Test.java 
module-info.java kompilieren Fehler beheben

Fehler

.\module-info.java:1: error: class, interface, or enum expected 
module module1 { } 
^ 
1 error 

module-info.java

module module1 { 

} 

Test.java

package com.nirav.modi; 

class Test { 

    public static void main(String args[]){ 

     System.out.println("Hello Modular..."); 

    } 

} 

Paketstruktur ist wie unten

module1\module-info.java 
module1\com\nirav\modi\Test.java 

JDK Version

java version "9-ea" 
Java(TM) SE Runtime Environment (build 9-ea+153) 
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+153, mixed mode) 

Antwort

1

Scheint, wie Sie mit nicht-Puzzle jdk bauen kompilieren hier ... hier ist der Link wurden sie jigsaw

Mit diesem Compiler die gleichen Proben, die Sie auf meinem Laptop einfach gut kompilieren.

Dies ist, wie java -version wie für Projekt Puzzle aussieht:

java version "9-ea" 
Java(TM) SE Runtime Environment (build 9-ea+153-jigsaw-nightly-h6003-20170124) 
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+153-jigsaw-nightly-h6003-20170124, mixed mode) 

EDIT Es funktioniert sowohl mit Stichsäge und nicht-Puzzle bauen. Ich habe gerade versucht es (Build 149)

EDIT2 Also habe ich versucht, mit jdk-9 Build 153 und hier ist, was ich habe:

javac -d mods module-info.java Modules.java 
module-info.java:1: warning: [module] module name module1 should avoid terminal digits 
module module1 { 
    ^
1 warning 

die "1" zu entfernen und den Betrieb der gleichen Das kompilierte OK- und Mods-Verzeichnis wurde mit beiden kompilierten Klassendateien erstellt.

+0

Gibt es zwei jdk für Java-9? wie normal und mit Modularität? –

+2

Die meisten Modularitätsmerkmale können auch im "normalen" Build gefunden werden. @Eugene: Hast du probiert, ob es bei einem von denen wirklich nicht geht? (Keine Zeit, um es jetzt auszuprobieren.) – Nicolai

+2

@Nicolai mein Fehler .. es funktioniert in der Tat mit dem einfachen Build. Ich werde die Antwort aktualisieren – Eugene

7

Pro Jigsaw Issues List kann ein Modulname nicht mit einer Nummer enden. Der Zweck besteht darin, Autoren davon abzuhalten, Versionsnummern in Modulnamen zu codieren.

+2

Beachten Sie, dass es derzeit (siehe diesen Kommentar-Zeitstempel) einen Vorschlag gibt, die Einschränkung "zurückzugehen". (Persönlich hoffe ich, dass es fehlschlägt ... aber es ist nicht mein Ruf.) –

+1

@StephenC Nach umfassender Rückmeldung wurde die Spezifikation überarbeitet, um Ziffern am Ende der Modulnamen zu erlauben: http://openjdk.java.net/projects/ Stichsäge/spec/issues/# VersionenInModuleNames – ZhekaKozlov

+0

danke für das Update! – Jay

Verwandte Themen