日期:2014-05-17  浏览次数:20789 次

cmd下编译运行报错
程序在myeclipse下运行没有问题,可以得到正常的结果。可是在cmd下编译在运行则报错。
javac -cp f:\ojdbc14_g.jar f:\Hello.java
java -cp ,;ojdbc14_g.jar Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello
Caused by: java.lang.ClassNotFoundException: Hello
        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: Hello.  Program will exit.

网上查找说是环境变量的问题,但是检查没有发现。写最简单的程序编译也是可以运行的。ojdbc14_g.jar是数据库的jar包。
程序代码见附件。
此段代码是一个web项目中的一部分。现在是为了解决如下问题:
通过shell脚本调用该项目中Hello.java的某一方法(当然目前才写完这段代码,对一些异常尚未处理,功能还没有做完),我的思路是在Hello中添加main方法然后将该类打包成jar然后写shell脚本调用。由于从为使用过shell脚本,也不知道该方法是否可行,或者是否有其他的更好的方法,求大神赐教。(原web项目中均是使用hibernate操作数据库,与下面的数据库连接不一样)。

谢谢了!如果您有什么好的解决方式,请加我QQ393420225或者回帖。多谢!


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import java.net.InetSocketAddress;
import java.net.Socket;
import java.sql.Connection;
import java.sql.DriverManager;

import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class Hello{
private String head1 = " 135500000000000000000000**            003";
private String head2 = "000";
private String head3 = "000000000";
private String head4 = " 0000Y 0000000";
private String tail = "                                                                                                                                                   " +
"00000000