对不起,我不能更具体的问题本身。下面是我正在运行的:Windows 7 64位,JDK v7,JRE v7(64位)和JRE v6(32位)。谈到Java时我很新,但是我知道如何编译一个程序和所有这些东西。我一直得到一个错误,当我试图运行我编译的程序:麻烦编译Java程序
C:\Users\Sean\Documents\JAVASTUFF\Chapter 3\1>javac ch3p1.java
C:\Users\Sean\Documents\JAVASTUFF\Chapter 3\1>java ch3p1
Error: could not open `C:\Program Files (x86)\Java\jre6\lib\i386\jvm.c
C:\Users\Sean\Documents\JAVASTUFF\Chapter 3\1>java -cp ch3p1
Error: could not open `C:\Program Files (x86)\Java\jre6\lib\i386\jvm.c
C:\Users\Sean\Documents\JAVASTUFF\Chapter 3\1>java cd3p1
Exception in thread "main" java.lang.NoClassDefFoundError: cd3p1
Caused by: java.lang.ClassNotFoundException: cd3p1
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: cd3p1. Program will exit.
C:\Users\Sean\Documents\JAVASTUFF\Chapter 3\1>java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing)
需要注意的是,它无法找到该文件,因为我已经改变文件夹名称,看它是否会自动检测到64位JRE我有安装
然而,经过足够的搜索,我发现我的陈述问题是,因为我跑我在JREv6在JDK V7编译的程序的页面。我搞砸了一会儿,试图让它在我下载的JDK附带的JRE中运行。
CD: C:\Users\Sean\Documents\JAVASTUFF\Chapter 3\1
Current directory: C:\Users\Sean\Documents\JAVASTUFF\Chapter 3\1
javac ch3p1.java
Process started >>>
<<< Process finished.
C:\Program Files\Java\jre7\bin\java.exe ch3p1
Process started >>>
Error: Could not find or load main class ch3p1
<<< Process finished.
我用记事本+ +和NppExec编译更快,我放弃了试图让它运行JRE V7,只是使用它的位置。这是我的NppExec代码(我不知道这是否是重要的,但我反正它张贴):
cd $(CURRENT_DIRECTORY)
javac $(FILE_NAME)
C:\Program Files\Java\jre7\bin\java.exe $(NAME_PART)
最后,这里就是我试图去运行实际的程序:
public class ch3p1
{
public static void main(String args[])
{
System.out.print("Hello.");
}
}
因此,快速回顾一下。我发现的第一个错误是因为我正在编译和运行具有不同版本的JDK和JRE的程序。我无法弄清楚如何使用我的JDK安装附带的JRE来运行它,所以我使用了它的直接路径。当我去运行我编译的程序时,我的希望被压制了,这会起作用。我有一个简单的“错误:无法找到或加载主类ch3p1”。
什么问题?我不清楚,广泛的问题是:我需要做些什么才能使其发挥作用?我再也不能描述了,因为我不知道该做什么或下一步要看什么。我希望我提供了足够有用的信息,并将其构造得足够好,以使其易于理解。
其他一些问题:删除“添加/删除程序”中的两个Java 6更新是否可以工作?我如何改变它,以便它运行java时,它将运行64位JRE v7?
我不知道我在这里做什么,我基本上学习,因为我去。我对电脑很熟悉,但是我对Java和JDK很陌生,所以我对它的工作原理知之甚少。我的线索可能完全错误,错误,如果是这样,请纠正我。
编辑
据我所知,有很多本网站上的问题,我敢肯定,人们在这里张贴回答很多,可以用最少可以解决没有参与工作的问题。我不得不说,我到处寻找,我来这里张贴这个,因为我根本找不到解决我的问题。我并没有在寻找其他程序的帮助,我绝对没有把这些文件放到我的Java安装目录中,因为尽管我是Java的新手,但对编程并不陌生。通过查看我提供的第一个示例可以轻松避免该响应,另一个可以在我的文档的文件夹中看到.java和.class文件的文件路径。
我将列出答案,我在这里尝试:
我重新安装了JDK 和 JRE从Oracle网站
我已经把我的SET_HOME系统变量和我的Path系统变量有JDK的bin目录。
我的.class文件和我的.java文件在同一个目录中,我的类和.java文件都命名为相同的东西,包括确切的情况。
在我安装了JDK和JRE之后,我删除了以前的文件并创建了一个新文件,但这也不起作用。
我试着把答案中建议的java和javac的直接位置。
我意识到有更好的IDE和构建程序,我使用的是javac,因为我现在正在使用的类是使用javac。现在
,一些额外的问题,帮我出:
我对Java V6.XX更新我的添加/删除程序列表中,会以任何方式影响任何去除这些积极或消极的方式。并将完成删除所有的JDK/JRE文件并重新安装改变任何东西?
是否有任何已知的使用Java和Windows 7的问题,我可能会遇到。
这是JRE或JDK的问题,因为它似乎在编译时没有任何问题,但是当我运行它时是出现错误。
除了我需要设置的CLASS_PATH或Path以外是否还有其他变量?
我很感谢迄今为止提供的所有帮助,尽管我还没有找到解决方案。
通过阅读和做一些教程,熟悉与Java。像这样http://docs.oracle.com/javase/tutorial/getStarted/cupojava/win32.html – 2012-02-11 18:09:11
停止输入javac并学会使用ant或maven或其他实际的构建工具。 – bmargulies 2012-02-11 18:11:39
@bmargulies我认为初学者应该尽可能地简单。在开始编程之前学习Maven可能太多太混乱了。 – Optimist 2012-02-11 18:29:08