如何在控制台启动程序+如何打包程序?

blackpool 2011-04-08 08:08:46
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到我的程序中?

谢谢!!



...全文
211 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackpool 2011-04-08
  • 打赏
  • 举报
回复
学校网络,除了csdn和163,貌似啥都上不了。。。
gentleboy2009 2011-04-08
  • 打赏
  • 举报
回复
webQQ不能用吗?
blackpool 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 gentleboy2009 的回复:]

QQ:42560395
[/Quote]

不好意思,我在linux下,暂时没法上qq
blackpool 2011-04-08
  • 打赏
  • 举报
回复
终于搞定了!

应该用java testgui/TestGUIApp

而不是java TestGUIApp

基础太差了。。。
gentleboy2009 2011-04-08
  • 打赏
  • 举报
回复
QQ:42560395
blackpool 2011-04-08
  • 打赏
  • 举报
回复
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.
blackpool 2011-04-08
  • 打赏
  • 举报
回复
难道是代码有错。。。
blackpool 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 gentleboy2009 的回复:]

一行命令的事情~!这也叫很烦人?
[/Quote]

诡异了,还是不行,直接命令行编译后,运行后也是出同样的错误。。。
gentleboy2009 2011-04-08
  • 打赏
  • 举报
回复
一行命令的事情~!这也叫很烦人?
blackpool 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gentleboy2009 的回复:]

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

可是很是烦人啊,明明用IDE编译好的东西,非得再手动用命令行编译一遍。。。
wklken 2011-04-08
  • 打赏
  • 举报
回复
要打包称exe,可以试试jsmooth,很傻瓜的,搜下相关使用,两三步直接搞定
gentleboy2009 2011-04-08
  • 打赏
  • 举报
回复
那就证明 路径没有问题。。。那你就在命令行下编译你的java程序啊
blackpool 2011-04-08
  • 打赏
  • 举报
回复
而且我用netbeans生成的.class

在控制台可以启动,唯独是IntelliJ IDEA生成的.class不能启动
blackpool 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gentleboy2009 的回复:]

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

谢谢!

测试HelloWorld没有问题,

echo $CLASSPATH

输出:
.:/opt/jdk1.6.0_22/lib:/opt/jdk1.6.0_22/jre/lib

不知道哪里有问题
男主角 2011-04-08
  • 打赏
  • 举报
回复
这样也能出现问题?用Jbuilder
gentleboy2009 2011-04-08
  • 打赏
  • 举报
回复
1.很有可能是classpath没有设置好,你可以先写一个HelloWorld,然后在命令行里编译运行下,看下是不是可以,我猜多半是环境变量没弄好。
2.可以将程序打包成Jar文件,单击运行,但是前提,电脑上安装了Java运行环境JRE,JAR包不分window与Linux之分。
3.exe文件可以借助第三方软件。。。推荐exe4j,至于双击exe直接运行的话,可以在你的程序目录下加入JRE。。。。楼主可以把程序弄成二进制文件,不过这个我没弄成功过
blackpool 2011-04-08
  • 打赏
  • 举报
回复
大家帮忙看看吧,小妹我结贴率可是100%噢,这厢有礼了!

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧