package java.nio.le fichier n'existe pas

Je fais comment compiler java en ligne de commande pour le moment. Voici ce que j'ai obtenu:

Voici ce que j'ai obtenu:

/myjava/compiler.cmd 
/myjava/src/a_pack/HelloWorld.java 
/myjava/src/b_pack/Inner.java 
/myjava/src/b_pack/Inner2.java 
/myjava/bin 

HelloWorld:

paquet a_pack; 

importation b_pack.Intérieure; 
importation b_back.Inner2; 
importer java.util.ArrayList; 
importer java.util.Iterator; 

public class HelloWorld { 

public static void main(String[] args) { 

Système.out.println("Hello, World"); 

Intérieure myInner = new Intérieure(); 
myInner.myInner(); 

Inner2 myInner2 = new Inner2(); 
myInner2.myInner(); 


Liste de tableaux myArray = new ArrayList(); 
montableau.add(1); 
montableau.add(2); 
montableau.add(3); 

Itérateur itr = montableau.iterator(); 
while (itr.hasNext()) 
{ 
Système.out.println(itr.next()); 
} 

} 

} 

Inner.java

paquet b_pack; 

public class Intérieure { 

public void myInner() { 
Système.out.println("Méthode Interne"); 
} 

} 

Inner2.java

paquet b_pack; 

public class Inner2 { 

public void myInner() { 
Système.out.println("SecondInner"); 
} 

} 

Je suis de la compilation avec javac -d bin -sourcepath -src src/a_pack/HelloWorld.java
et cela fonctionne bien.

Maintenant, ma compréhension est que, parce que le HelloWorld.java les références les autres paquets dans les déclarations d'importation, puis javac va et la compilation de ceux-ci.
Et je suppose que pour tous les packages java, javac a l'interne ou de quelque chose.

De toute façon -
si j'ajoute à la suite de l'importation de la ligne de HelloWorld.java

import java.nio.file.Files;

il échoue avec

 
D:\.....\myjava>javac -d bin -sourcepath src src/a_pack/HelloWo 
rld.java 
src\a_pack\HelloWorld.java:8: package java.nio.le fichier n'existe pas 
importer java.nio.fichier.Fichiers; 
^ 
1 erreur 

Quelle est l'histoire ici? Pourquoi certains packages java bons et d'autres pas?

  • NIO a été introduit dans Java 7. Quelle est la version de Java à l'aide?
  • Le JDK je suis sur que contient javac est jdk1.6.0_32.
  • Il n'y est une réponse. Vous devez installer le JDK 7.
  • Juste une clarification pour les JDK vs JRE. Le javac je suis en utilisant appartient à JDK1.6.0, et je suis explicitement la définition de l'emplacement de la javac.exe. Mais la version de java (à l'aide de java -version sur mon ordinateur est 1.7.0_07. Ainsi est la raison pour laquelle il échoue car les paquets ne sont pas dans le JDK?
  • Oui, JDK1.6.0 ne peut pas faire. Vous avez besoin du JDK 7 compilateur. Votre java est à partir d'une autre installation qui est très bien pour l'exécution de l'application.
  • Ok, donc quand j'utilise le JDK1.6.0 pour compiler mon code sans le nio paquet - pourquoi n'est-il pas de compiler les paquets java (java.utils) dans le dossier bin? Quand j'ai, plus tard, comment sait-il comment et où les utiliser?
  • BTW, si vous de soumettre votre premier commentaire comme réponse, je vais l'accepter.
  • À la fois le JDK & JRE 7 ont le NIO classes dans leur exécution des fichiers jar. La version 6 de Java JDK n'a pas de ces. Si il n'y a pas de Java 7 dépendances ou de la syntaxe, puis il y a le JDK 6 est très bien...
  • Ouais, donc, si je devais compiler avec un JDK7, mais de l'exécuter dans un RE6 j'aimerais obtenir un certain genre d'erreur?
  • Seulement si vous utilisez l'une des nouvelles classes ou de syntaxe introduite dans Java 7...
  • Cool, tas merci pour votre aide.

InformationsquelleAutor dwjohnston | 2013-05-16