请人把下面这段代码打包成.exe的安装文件,在没有安装Java虚拟机的电脑上也能运行。
将产品发到如下邮箱[email protected] 满意后马上给分,谢!************代码过长,分两部分,下面是第一部分**********
package test.heat;import java.awt.Component;
import java.awt.FocusTraversalPolicy;
import java.awt.Frame;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.Panel;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Rectangle;
import java.awt.Button;public class HeatTest extends Frame { private static final long serialVersionUID = 1L;
private Panel panel = null;
private Label label = null;
private Label label1 = null;
private Label label2 = null;
private Label label3 = null;
private Label label4 = null;
private Button button = null;
private TextField textField = null;
private TextField textField1 = null;
private TextField textField2 = null;
private TextField textField3 = null;
private TextField textField4 = null;
private Label label5 = null; /**
 * This method initializes panel
 * 
 * @return java.awt.Panel
 */
private Panel getPanel() {
if (panel == null) {
label4 = new Label();
label4.setText("黄铜温度变化量(ΔQ)");
label4.setBounds(new Rectangle(75, 178, 125, 25));
label3 = new Label();
label3.setText("样品上表面温度Q2(℃)");
label3.setBounds(new Rectangle(75, 138, 125, 25));
label2 = new Label();
label2.setText("样品下表面温度Q1(℃)");
label2.setBounds(new Rectangle(75, 98, 125, 25));
label1 = new Label();
label1.setText("样品的半径R(cm)");
label1.setBounds(new Rectangle(75, 58, 125, 25));
label = new Label();
label.setText("样品的厚度H(cm)");
label.setBounds(new Rectangle(75, 18, 125, 25));
panel = new Panel();
panel.setLayout(null);
panel.add(label, null);
panel.add(label1, null);
panel.add(label2, null);
panel.add(label3, null);
panel.add(label4, null);
panel.add(getButton(), null);
panel.add(getTextField(), null);
panel.add(getTextField1(), null);
panel.add(getTextField2(), null);
panel.add(getTextField3(), null);
panel.add(getTextField4(), null);
panel.add(getLabel5(), null);
}
return panel;
} private Label getLabel5() {
if (label5 == null) {
label5 = new Label();
label5.setBounds(new Rectangle(70, 290, 350, 50));
label5.setText("系数为:");
}
return label5;
} /**
 * This method initializes button
 * 
 * @return java.awt.Button
 */
private Button getButton() {
if (button == null) {
button = new Button();
button.setBounds(new Rectangle(155, 240, 140, 35));
button.setLabel("计算");
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// System.out.println("actionPerformed()"); // TODO
// Auto-generated Event stub actionPerformed()
calculate();
}
});
}
return button;
} /**
 * This method initializes textField
 * 
 * @return java.awt.TextField
 */
private TextField getTextField() {
if (textField == null) {
textField = new TextField();
textField.requestFocus();
textField.setBounds(new Rectangle(250, 15, 160, 30));
textField.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField.selectAll();
}
});
}
return textField;
} /**
 * This method initializes textField1
 * 
 * @return java.awt.TextField
 */
private TextField getTextField1() {
if (textField1 == null) {
textField1 = new TextField();
textField1.setBounds(new Rectangle(250, 95, 160, 30));
textField1.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField1.selectAll();
}
});
}
return textField1;
} /**
 * This method initializes textField2
 * 
 * @return java.awt.TextField
 */
private TextField getTextField2() {
if (textField2 == null) {
textField2 = new TextField();
textField2.setBounds(new Rectangle(250, 135, 160, 30));
textField2.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField2.selectAll();
}
});
}
return textField2;
} /**
 * This method initializes textField3
 * 
 * @return java.awt.TextField
 */
private TextField getTextField3() {
if (textField3 == null) {
textField3 = new TextField();
textField3.setBounds(new Rectangle(250, 175, 160, 30));
textField3.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
//System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
textField3.selectAll();
}
});
}
return textField3;
}

解决方案 »

  1.   

    *************下面是第二部分**********
    /**
     * This method initializes textField4
     * 
     * @return java.awt.TextField
     */
    private TextField getTextField4() {
    if (textField4 == null) {
    textField4 = new TextField();
    textField4.setBounds(new Rectangle(250, 55, 160, 30));
    textField4.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusGained(java.awt.event.FocusEvent e) {
    //System.out.println("focusGained()"); // TODO Auto-generated Event stub focusGained()
    textField4.selectAll();
    }
    });
    }
    return textField4;
    } /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    new HeatTest(); } /**
     * This is the default constructor
     */
    public HeatTest() {
    super();
    initialize();
    } /**
     * This method initializes this
     * 
     * @return void
     */
    private void initialize() { // 控制按Tab时焦点的移动移动顺序 FocusTraversalPolicy p = new FocusTraversalPolicy() { @Override
    public Component getComponentAfter(java.awt.Container container,
    Component component) {
    // TODO Auto-generated method stub
    if (getTextField() == component)
    return getTextField4();
    if (getTextField4() == component)
    return getTextField1();
    if (getTextField1() == component)
    return getTextField2();
    if (getTextField2() == component)
    return getTextField3();
    if (getTextField3() == component)
    return getButton();
    return getTextField();
    } @Override
    public Component getComponentBefore(java.awt.Container container,
    Component component) {
    // TODO Auto-generated method stub
    if (getTextField() == component)
    return getButton();
    if (getButton() == component)
    return getTextField3();
    if (getTextField3() == component)
    return getTextField2();
    if (getTextField2() == component)
    return getTextField1();
    if (getTextField1() == component)
    return getTextField4();
    if (getTextField4() == component)
    return getTextField();
    return getButton();
    } @Override
    public Component getDefaultComponent(java.awt.Container container) {
    // TODO Auto-generated method stub
    return getTextField();
    } @Override
    public Component getFirstComponent(java.awt.Container container) {
    // TODO Auto-generated method stub
    return getTextField();
    } @Override
    public Component getLastComponent(java.awt.Container container) {
    // TODO Auto-generated method stub
    return getButton();
    }
    };
    this.setFocusTraversalPolicy(p); this.setSize(500, 400);
    this.setLocation(500, 100);
    this.setMaximumSize(new Dimension(500, 400));
    this.setTitle("环氧树脂导热系数计算"); this.add(getPanel(), BorderLayout.CENTER);
    this.setResizable(false);
    this.setVisible(true);
    this.addWindowListener(new java.awt.event.WindowAdapter() {
    public void windowClosing(java.awt.event.WindowEvent e) {
    // System.out.println("windowClosing()"); // TODO Auto-generated
    // Event stub windowClosing()
    System.exit(0);
    }
    });
    } // 将计算结果转换成字符串后添加到label5中显示
    private void calculate() {
    // System.out.println("测试事件");
    CalculateFactor cFactor = new CalculateFactor();
    String s = ""; // 定义一个字符串用于在Lable5中显示计算结果
    try {
    s = "系数为:" + String.valueOf(cFactor.getFactor()); } catch (Exception e) {
    // TODO: handle exception
    s = "请按正确的数字格式输入数字...";
    }
    getLabel5().setText(s); } // 定义一个非静态内部类,用来对从外部类中取得的数据进行处理
    private class CalculateFactor {
    private final double BRASSMASS = 0.984; // 定义黄铜的质量
    private final double SPECIFICHEATCAPACITY = 393.6; // 定义黄铜的比热容
    private final double BRASSRADIUS = 6.152; // 定义黄铜的半径
    private final double BRASSTHICK = 1.1241; // 定义黄铜的厚度
    private final double PI = 3.1415; // 定义圆周率PI
    private final int TIMEINTERVAL = 30; // 定义测量温度的时间差值
    // 取得样品的厚度Hb
    private double sampleThick = 0.0;
    // 取得样品的半径Rb
    private double sampleRadius = 0.0;
    // 取得样品上边面稳定后的温度
    private double sampleTopTemperature = 0.0;
    // 取得样品下表面稳定后的温度
    private double sampleBottomTemperature = 0.0;
    // 取得黄铜自然冷却在Q2附近的温度的变化量ΔQ
    private double temperatureInterval = 0.0; // 计算环氧树脂导热系数的方法
    public double getFactor() {
    sampleThick = Double.valueOf(getTextField().getText());
    sampleRadius = Double.valueOf(getTextField4().getText());
    sampleBottomTemperature = Double.valueOf(getTextField1().getText());
    sampleTopTemperature = Double.valueOf(getTextField2().getText());
    temperatureInterval = Double.valueOf(getTextField3().getText());
    double sampleHeatFactor = (BRASSMASS * SPECIFICHEATCAPACITY)
    * ((BRASSRADIUS + 2 * BRASSTHICK) / (2 * BRASSRADIUS + 2 * BRASSTHICK))
    * (temperatureInterval / TIMEINTERVAL)
    * (sampleThick / (sampleBottomTemperature - sampleTopTemperature))
    * (1 / (PI * sampleRadius));
    return sampleHeatFactor;
    }
    }} // @jve:decl-index=0:visual-constraint="326,31"
      

  2.   

    先生成jar,再用installanywhere完成,等等
      

  3.   

    有要打包的目录前使用以下命令:
    cd  ./classes  (文件目录);
    jar -cmf MANIFEST.MF ../~~.jar   *  (~~.jar 生成的jar);
    cmd
    *注意classes里的MANIFEST.MF如下(冒号后要有个空格,否则出错)
    Manifest-Version: 4.0
    Class-Path:  ./lib/j2ee.jar ./lib/log4j-1.2.14.jar ./lib/mysql-connector-java-5.0.6-bin.jar (包含的jar文件)
    Created-By: 1.6.0 (Sun Microsystems Inc.)
    Main-Class: com.fytri.oamail.service.OAService  (主类,即开始运行的类)
      

  4.   

    代码好象不完整,你把完整的eclipse项目文件发到我邮箱,这分我要了[email protected]