当前位置: 首页 > 知识库问答 >
问题:

包java.nio.file不存在

汪安然
2023-03-14

我正在研究如何从命令行编译Java。我得到的是:

我得到的是:

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

HelloWorld:

package a_pack;

import b_pack.Inner;
import b_back.Inner2;
import java.util.ArrayList; 
import java.util.Iterator; 

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello, World");     

        Inner myInner = new Inner(); 
        myInner.myInner(); 

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


        ArrayList myArray = new ArrayList(); 
        myArray.add(1); 
        myArray.add(2); 
        myArray.add(3); 

        Iterator itr = myArray.iterator();
        while (itr.hasNext())
        {
            System.out.println(itr.next()); 
        }

    }

}

inner.java

package b_pack; 

public class Inner {

    public void myInner() {
        System.out.println("Inner Method");
    }

}

内部2.Java

package b_pack; 

public class Inner2 {

    public void myInner() {
        System.out.println("SecondInner");
    }

}

我正在用javac-d bin-sourcePath-src src/a_pack/helloworld.编译这个文件,这个文件工作得很好。

现在我的理解是,因为helloworld.java在它的import语句中引用了其他包,所以javac会去编译这些包。我猜对于所有的Java包,javac在内部都有。

反正-如果我在helloworld.java中添加以下导入行

导入java.nio.file.files

它失败的原因是


D:\.....\myjava>javac -d bin -sourcepath src src/a_pack/HelloWo
rld.java
src\a_pack\HelloWorld.java:8: package java.nio.file does not exist
import java.nio.file.Files;
                    ^
1 error

这里有什么故事?为什么Java有的好,有的不好?

共有2个答案

杭柏
2023-03-14

如果你在OSX上,那么检查一下它正在使用的JDK...

$ cd /System/Library/Frameworks/JavaVM.framework/Versions
$ readlink /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
$ javac -version
javac 1.7.0_25

正如您所看到的,currentjdk指向的是错误的版本。您可以通过替换符号链接来解决这个问题。

cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo ln -fs /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents CurrentJDK

这篇博文为我节省了5分钟的运行dtrace时间。

车诚
2023-03-14

Java尼奥是在Java引进的。JDK早期版本的编译器会拒绝包含这些NIO类的任何代码。您需要升级到JDK7或更高版本。

 类似资料:
  • 我的java编译器找不到包。考虑: 使用编译 给出 我使用的是Ubuntu 12.04,我想我已经安装了JDK 7(参见:package java.nio.file不存在)

  • 我试图监听一个目录的变化,然后发现java.nio.*是为了高效地处理这样的任务而开发的。然后从oracle下载JDK1.7.0_02,并用它启动eclipse。然后创建新的java项目,试图从java.nio.file实现一些类,哦,我的眼睛!“无法解析导入java.nio.file”。我必须在包含这样的包的整个JDK1.7.0_02目录中找到一些。jar吗?还是我的类路径出了问题?提前谢谢!!

  • 我正在尝试在intelliJ中制作一个jar文件。我的目录中保存了所有的java类是C:\transProject\src\cege。在cege中有一个包用户界面,其中有一个类guiMain。而且我已经在我的Main()类中导入了guiMain()。 我有以下代码行: 包装cege; 进口cege。用户界面。圭曼; 当我在intelliJ中使用终端并编写命令时: C:\trafficProject

  • 我得到了一个可怕的软件包,它根本不存在,简直要了我的命。代码很好,我在市场上有运行代码的应用程序。 现在它正在影响简单的应用程序。o.0 <代码>R.string。app_name是错误的my 。应该对应于R.java

  • 我使用的是openjdk版本“1.8.0_252”,我还单独安装了javafx,目前的版本是javafx.version=11.0.2-internal。我已经在IntelliJ中添加了javafx库路径。编写代码javafx对时没有错误。但是,当我使用sudo mvn clean install构建项目时,我出现了以下错误,导致构建失败:

  • 我是编译Hadoop代码的新手,知道这个问题已经被回答过多次了。但是,我仍然很难找到正确的类路径来编译WordCount.java代码。我正在运行一个CentOS版本7。 我的Hadoop版本是: 当我执行echo$path时,我得到了以下结果: 有人能给我指个正确的方向吗?谢谢你。