Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在jdk1.7中编译和运行HelloWorld_Java_Java 7 - Fatal编程技术网

Java 无法在jdk1.7中编译和运行HelloWorld

Java 无法在jdk1.7中编译和运行HelloWorld,java,java-7,Java,Java 7,我已经在我的e:\上安装了jdk1.7。我已经在c:\的机器中安装了jdk1.6和1.5 环境可贵 path=c:\jdk1.6\bin;e:\jdk1.7\bin;.; classpath=c:\jdk1.6\lib;e:\jdk1.7\lib;.; 在cmd提示符中 E:\>java -version java version “1.7.0″ Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) Cli

我已经在我的
e:\
上安装了
jdk1.7
。我已经在
c:\
的机器中安装了
jdk1.6
1.5

环境可贵

path=c:\jdk1.6\bin;e:\jdk1.7\bin;.;
classpath=c:\jdk1.6\lib;e:\jdk1.7\lib;.;
在cmd提示符中

E:\>java -version
java version “1.7.0″
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)

E:\>set path=e:\javasdk1.7\bin;.;

E:\>javac
Error: Could not find or load main class com.sun.tools.javac.Main
无法编译位于
e:\

在这里输入代码

import java.io.*;
class Hello7 {
   public static void main(String... args) {
      String color="red";
      switch (color) {   
      case "red":   
         System.out.println("Color is Red");   
         break;   
      case "green":   
         System.out.println("Color is Green");   
         break;   
      default:   
         System.out.println("Color not found");   
      }  
   }
}

不,Tom,在尝试编译时仍然出错。请找到下面的状态

E:\>dir j*
 Volume in drive E is Keane
  Volume Serial Number is BA91-B3F6

 Directory of E:\

 10/04/2010  05:25 PM    <DIR>          j2ee1.4.tutorials
 08/18/2011  02:52 PM    <DIR>          Jar Files
 08/02/2011  11:33 AM    <DIR>          javasdk1.7
 07/01/2011  04:39 PM    <DIR>          jboss
 10/04/2010  05:25 PM    <DIR>          jsf
 10/04/2010  05:25 PM    <DIR>          junit
           0 File(s)              0 bytes
           6 Dir(s)  33,454,637,056 bytes free

  E:\>set path=e:\javasdk1.7\bin;.;

  E:\>set classpath=e:\javasdk1.7\lib;.;

  E:\>javac
  Error: Could not find or load main class com.sun.tools.javac.Main
E:\>dirj*
驱动器E中的音量为基恩
卷序列号为BA91-B3F6
电子邮件地址:\
2010年4月10日下午5:25 j2ee1.4.教程
2011年8月18日02:52下午Jar文件
2011年2月8日上午11:33 javasdk1.7
2011年1月7日下午4:39 jboss
2010年4月10日下午5:25 jsf
2010年4月10日下午5:25 junit
0个文件0个字节
6个目录(s)33454637056个可用字节
E:\>set path=E:\javasdk1.7\bin;。;
E:\>set classpath=E:\javasdk1.7\lib;。;
E:\>javac
错误:无法找到或加载主类com.sun.tools.javac.main

路径和类路径中的JDK 6显示在JDK 7之前。我相信这就是问题所在

首先尝试从类路径和路径环境变量中删除JDK 6,然后重试。如果它能工作,您可能必须创建bat文件来设置Java7的环境,并在使用Java7之前运行它


或者只删除旧版本的java。为什么需要它们?

在您的类路径中,java 7位于e:\jdk1.7\lib

请注意jdk1.7

在指定环境变量时,路径中的java 7位于e:\jdk1.7\bin,但随后在以下行中将其设置为e:\javasdk1.7\bin:

E:\>set path=e:\javasdk1.7\bin;.;
请注意javasdk1.7

由于javac正在运行,您设置的新路径似乎必须正确。您的类路径应该与之匹配(正如其他人所指出的,删除对java 7安装的引用):


进行更改后,它应该能够找到缺少的类。

您的JDK是在e:\jdk1.7还是在e:\javasdk1.7中?你的问题前后矛盾。我还感到惊讶的是,如果您的路径中首先有JDK 6,它会显示为Java 7…请检查tools.jar,可能它已损坏或丢失。没有必要查看代码,因为问题是javac找不到tools.jar,甚至还没有开始“编译”任何内容。在这一点上,我们已经避开windows十年了(而且java/javac在CentOS 6上运行得很好,只是从解包的tar.gz开始),但问题显然是环境设置。去掉类路径中的1.6,再试一次。我建议您使用IDE。它的设计目的是使开发更容易,Java版本之间的切换只是一种设置。Peter,我尝试了Eclipse3.6,在属性中我能够使用jre 1.7和编译器1.7,能够执行简单的Java代码。尝试使用字符串切换时出现编译器错误。请从path中删除旧版本,用户和系统环境变量中的classpath,现在总共只有7个。还是同样的错误
classpath=e:\javasdk1.7\lib;.;