打jar包的问题

sunlaji008 2011-01-26 11:49:17
我把一个java程序打成了jar包,可以双击执行了。我在程序中只import了一些java基础类,但没有把java的基础类的jar包打进来。
问:在非java环境(没有JDK)中能执行么?能实现功能么?
不能的话怎么改进?
...全文
149 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunlaji008 2011-01-28
  • 打赏
  • 举报
回复


import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/*
class MyWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
*/

class S extends Frame implements ActionListener,MouseListener {
TextField x,y,z;
Button bu;
float a,b,c;
String str;
S(String s)
{
super(s);
setLayout(new FlowLayout());
x=new TextField("乘数",4);
y=new TextField("被乘数",4);
z=new TextField("乘积",6);
bu=new Button("等于");
add(x);
add(y);
add(bu);
add(z);
setBounds(100,100,270,100);
setVisible(true);
validate();
bu.addActionListener(this);
addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==bu){
a=Float.parseFloat((x.getText()));
b=Float.parseFloat((y.getText()));
c=a*b;
str=String.valueOf(c);
z.setText(str);
}

}
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
e.
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub

}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub

}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub

}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub

}
}

public class ChengFa {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
S s=new S("计算功能GUI");
}

}
liumin_csu 2011-01-27
  • 打赏
  • 举报
回复
可以肯定的是,再自己代码里没有打入你使用到的基础类的情况下,没有jdk是执行不了的。明显缺少了类支持。
楼主,为什么环境里不能装JDK呢?环境有要求吗?一般的环境下都有jdk的呀?
如果不装也可以,方法是自己在某个目录下将用到基础类也打进你的工程。这样反而显得更繁琐。建议不要这么搞,这样就失去了java的优势的是不。
楼主自己考虑下怎么好吧,无论用什么打包,只要用到了库类,要么装jdk,要么将库里用的类放在自己的工程里。
祝楼主能搞定这问题。
heochuan 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sunlaji008 的回复:]
引用 4 楼 lizhikelizhike 的回复:

应该要在Jre环境下才能运行吧,非Java环境下.class文件都不能运行呀

我用exe4j也做成了一个.exe的文件,我就想知道在没有jre环境的电脑里能不能正常执行,请给我个准确答案
[/Quote]

exe4j我没用过
我用JSmooth打过包 说是能把jre打进去
但实际上还是没有把全文件都打进去 只是有个路径而已
楼主要想在没有java环境下运行jar包做成的exe程序
也只能在打包之后 把exe程序和jre放到同一个目录下
只有这样才能运行
ace62 2011-01-27
  • 打赏
  • 举报
回复
必须装了JRE的计算机上才可以运行Java class。
如果通过exe4j等打包软件,在打包时已经包含了JRE(即自带了JRE),那么用该打包结果安装后就可以执行了,不管原来是否装了JRE(这时使用的是自带的JRE)
如果import了第三方的jar,那么这些jar需指定classpath
wolfkoala 2011-01-27
  • 打赏
  • 举报
回复
不一定有jdk但一定要有jre

用exe4j也必须有jre,import的包要么放在jre下,要么一起用exe4j引入才行
sunlaji008 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiaochun91103 的回复:]

exe4j可以打包。
[/Quote]
用exe4j不用把jre打进去么?
yaoweijq 2011-01-26
  • 打赏
  • 举报
回复
执行的话
有jre就行了
或者你连jre也打包进去
xiaochun91103 2011-01-26
  • 打赏
  • 举报
回复
exe4j可以打包。
sunlaji008 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lizhikelizhike 的回复:]

应该要在Jre环境下才能运行吧,非Java环境下.class文件都不能运行呀
[/Quote]
我用exe4j也做成了一个.exe的文件,我就想知道在没有jre环境的电脑里能不能正常执行,请给我个准确答案
skyzxl 2011-01-26
  • 打赏
  • 举报
回复
netbeans 可以支持打包
Leeezk 2011-01-26
  • 打赏
  • 举报
回复
应该要在Jre环境下才能运行吧,非Java环境下.class文件都不能运行呀
Leeezk 2011-01-26
  • 打赏
  • 举报
回复
应该要在Jre环境下才能运行吧,非Java环境下.class文件都不能运行呀

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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