1. 用IDE写了个小程序,使用IDE(用的是IntelliJ IDEA)运行没有问题。但是生成的xxx.class,无法从控制台启动程序。java xxx会出现:Exception in thread "main" java.lang.NoClassDefFoundError:...网上超多这个问题,多数与设置classpath有关,但是我真的设置好了classpath,还是没法从控制台启动。
2. 另外,如果我想把这个小程序发布出来,怎样打包成.jar或者.exe呢?如果要让程序能够跨平台使用,在Linux下打包成啥呢?3. 我还想让程序变得傻瓜一点,也就是绿色版本吧,怎样双击.exe就能用,而不需要用户装java平台?换句话说能不能集成java到我的程序中?谢谢!!

解决方案 »

  1.   

    1.很有可能是classpath没有设置好,你可以先写一个HelloWorld,然后在命令行里编译运行下,看下是不是可以,我猜多半是环境变量没弄好。
    2.可以将程序打包成Jar文件,单击运行,但是前提,电脑上安装了Java运行环境JRE,JAR包不分window与Linux之分。
    3.exe文件可以借助第三方软件推荐exe4j,至于双击exe直接运行的话,可以在你的程序目录下加入JRE。楼主可以把程序弄成二进制文件,不过这个我没弄成功过
      

  2.   

    这样也能出现问题?用Jbuilder
      

  3.   


    谢谢!测试HelloWorld没有问题,echo $CLASSPATH输出:
    .:/opt/jdk1.6.0_22/lib:/opt/jdk1.6.0_22/jre/lib不知道哪里有问题 
      

  4.   

    而且我用netbeans生成的.class在控制台可以启动,唯独是IntelliJ IDEA生成的.class不能启动
      

  5.   

    那就证明 路径没有问题那你就在命令行下编译你的java程序啊
      

  6.   

    要打包称exe,可以试试jsmooth,很傻瓜的,搜下相关使用,两三步直接搞定
      

  7.   


    可是很是烦人啊,明明用IDE编译好的东西,非得再手动用命令行编译一遍
      

  8.   

    Exception in thread "main" java.lang.NoClassDefFoundError: TestGUIApp (wrong name: testgui/TestGUIApp)at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: TestGUIApp. Program will exit.
      

  9.   

    终于搞定了!应该用java testgui/TestGUIApp而不是java TestGUIApp基础太差了
      

  10.   


    不好意思,我在linux下,暂时没法上qq
      

  11.   

    学校网络,除了csdn和163,貌似啥都上不了