有一事不明白,我刚才编译成功这个class文件后能成功运行,但一关了DOS窗口重新打开并运行此命令就不行了,出现如下错误:
C:\j2sdk1.4.2>java c:\jsp\WEB-INF\classes\HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: c:\jsp\WEB-INF\classe
s\HelloWorld
这是什么意思?是路径的原因吗?刚才明明能正确显示的,现在却不行了,记得以前看过一篇文章说这是路径的原因,哪位再给详细指点一下。
C:\j2sdk1.4.2>java c:\jsp\WEB-INF\classes\HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: c:\jsp\WEB-INF\classe
s\HelloWorld
这是什么意思?是路径的原因吗?刚才明明能正确显示的,现在却不行了,记得以前看过一篇文章说这是路径的原因,哪位再给详细指点一下。
package jsp;
public class HelloWorldd {
public String name = "My first bean";
public String getHi()
{
return "Hello from " + name;
}
}
这是照抄别人的,我只不过改了下路径及类名,编译应该成功了,已在同目录下生成了HelloWorldd.class,但运行时不行,什么原因呢?刚编译完时能成功运行,但关了DOS窗口再次运行就不行了,而我放在j2sdk1.4.2目录中的class文件就能正常运行,这个class文件是放在c:\jsp目录下的。我的语句并没有错啊(package jsp;),虚拟目录就叫jsp,没错吧,不明白哪里出错,请各位再指教一下。
或者是你自己没有去利用它们
path="%path%;C:\j2sdk1.4.2\bin"
classpath=".;C:\j2sdk1.4.2\lib\dt.jar;C:\j2sdk1.4.2\lib\tools.jar;D;\MyJava"
^^^^^^^^^^^
classpath中的D:\MyJava可以为任意的文件夹,用来存放你自己写的java类的都设置好了后,把你编译好的class(包括bean)都放到D:\MyJava\下
如果class中定义了package(例如bean调用都要用package的--tomcat下)
则把class放到D:\MyJava\packageName\下然后你到任意一个目录下,比如C:\
敲入java jsp.HelloWorld(jsp为packageName,HelloWorld为className),回车
Ok了吗?
:)
不过那个叫HelloWorld的Bean(哦,你写成了HelloWorldd)因为没有定义main方法
所以不能用直接java指令运行
得通过jsp调用才行
.;C:\j2sdk1.4.2\lib\tools.jar;C;\j2sdk1.4.2\lib\dt.jar;C;\j2sdk1.4.2\lib\mm.mysql-2.0.4-bin;
但D;\MyJava这个没写,我没定义放置类的目录,因为现在暂时没打算将全部的类都放在一块,所以就没写。如果class中定义了package(例如bean调用都要用package的--tomcat下)
则把class放到D:\MyJava\packageName\下,这句话的意思对照我的情况是不是我应该在D:\MyJava\下建立jsp目录,我的理解对不对呢?
C:\j2sdk1.4.2>java HelloWorldd
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldd
还是不行,class文件都生成了,看来是路径的问题,怎么做才正确呀!
比如\WEB-INF\classes\jsp\下
ok?自己的帖子可要看仔细嘛^_^
你的错误是没有定义main方法
我说明一下,我写的并没错,因为我在j2sdk1.4.2目录下有一个HelloWorld.class,代码和这个不一样的,但那个没用package jsp;语句,那个运行完全正常,我只是将这个改了一下(即后面加了一个d),生成的类也叫HelloWorldd.class。另:我觉得在classpath中加入C;\j2sdk1.4.2\lib\mm.mysql-2.0.4-bin好像没有意义(个人意见哈,也许是我自己没发现其中的奥妙,这是JDBC驱动程序的路径,必须要加上,否则无法连接数据库。我运行java jsp.HelloWorldd也没用,还是一样的错误,大家再给指点一下如何?
<html>
<head>
<title>JavaBean 试验</title>
</head>
<body>
<jsp:useBean id="helloBean" scope="session" class="jsp.HelloWorld" />
<%= helloBean.getHi() %>
<hr>
<%
helloBean.name = "JSP";
out.print(helloBean.getHi());
%>
</body>
</html>//HelloWorld.javapackage jsp;public class HelloWorld {
public String name = "My first bean";
public String getHi()
{
return "Hello from " + name;
}
}把HelloWorld.java编译后的class放到\WEB-INF\classes\jsp\下
启动tomcat
在浏览器中输入你的jsp所在的地址(千万别说这个你也不清楚哈)
然后就看结果了
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}把编译后的class放到已被设为classpath的文件夹中
如D:\MyJava\jsp\下(jsp为packageName)
输入java jsp.HelloWorld
看结果去吧
呵呵
我肯定先试过了的啊
完全正确
Hello from JSP
--------------------------------------------------------------------------------
Hello from JSP
显示这个对吗?
另:好像你的显示结果不正确,不过还是先检查一下你的bean文件吧
顺便恭喜你调试成功