当前位置: 代码迷 >> Java相关 >> [求助]怎么把.class文件打包成可执行的jar文件
  详细解决方案

[求助]怎么把.class文件打包成可执行的jar文件

热度:141   发布时间:2007-06-23 22:17:25.0
[求助]怎么把.class文件打包成可执行的jar文件


我想把一个Applet打包成可执行的jar文件 我自己创建了一个MANIFEST.mf 文件里面是
Main-Class: com.Login\n

可以打包成jar文件 但是没有办法执行 出错了
Failed to load Main-Class manifest attribute from
E:\Eclipse\Texiao\src\loin.jar

请问应该怎么做

[此贴子已经被作者于2007-6-23 22:18:03编辑过]

搜索更多相关的解决方案: jar  class  文件  打包  

----------------解决方案--------------------------------------------------------
假设你要打包的程序目录为JAVA,它在名为TEST的目录中,你需要在TEST下创建一个目录:
META-INF
这个目录里包含一个文件:
MANIFEST.MF

这个文件里的内容:

Manifest-Version: 1.0
Main-Class: main

main为你要执行的主程序







----------------解决方案--------------------------------------------------------
同意楼上的说法!
----------------解决方案--------------------------------------------------------
你能说的详细点吗

命令行怎么输入

如果我的.class文件在com包里面 那我的MANIFEST.MF文件还是跟你那一样放吗

命令行怎么输入
----------------解决方案--------------------------------------------------------
使用jar命 令

然后再声明一个说明文件,文本格式的

jar cvfm my.jar my.txt *.class

其中my.txt 里面声明了你的主类全称

my.jar就是你生成的jar文件的名字

*.class表示当前文件夹下面的所以类文件都包进去,你也可以给一个目录,让这个目录都包进去

说明文件里面的格式

Main-Class: com.mycompany.Main

注意:打完Main后要加一个回车,并且Main-Class: 和com之间要有一个空格
你也可以加上别的条款

Class-Path: xx.jar x1.jar x2.jar

用空格分开
----------------解决方案--------------------------------------------------------
我把MANIFEST.MF文件 和 Login.class 文件放在com的目录下

MANIFEST.MF 里面
Manifest-Version: 1.0
Main-Class: Login
在命令行 jar cvf login.jar MANIFEST.MF Login.class

还是出
Failed to load Main-Class manifest attribute from
E:\Eclipse\Texiao\src\com\loin.jar
错误


----------------解决方案--------------------------------------------------------

我把MANIFEST.MF文件 和 Login.class 文件放在com的目录下

MANIFEST.MF 里面
Manifest-Version: 1.0
Main-Class: Login

在命令行 jar cvfm login.jar MANIFEST.MF Login.class

他说找不到 main class

[此贴子已经被作者于2007-6-23 23:14:58编辑过]


----------------解决方案--------------------------------------------------------

我的Login.class
package com;
import java.io.*;
import java.net.*;
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.Timer;


public class Login extends JFrame implements ActionListener
{
JLabel lblUserName;
JLabel lblUserPwd;
JTextField txtUsrName;
JPasswordField txtUsrPwd;

JButton btnLogin;
JButton btnCancel;
JButton btnRegister;

String UsrName;
char[] UsrPwd;
String strPwd;

Socket toServer;
ObjectInputStream streamFromServer;
PrintStream streamToServer;

public Login(){
this.setTitle("登陆");
JPanel panel = new JPanel();

panel.setLayout(new GridBagLayout());

GridBagConstraints gbCons = new GridBagConstraints();

gbCons.gridx = 0;
gbCons.gridy = 0;
lblUserName = new JLabel("用户名");
panel.add(lblUserName,gbCons);

gbCons.gridx = 1;
gbCons.gridy = 0;
txtUsrName = new JTextField(20);
panel.add(txtUsrName,gbCons);

gbCons.gridx = 0;
gbCons.gridy = 1;
lblUserPwd = new JLabel("密码");
panel.add(lblUserPwd,gbCons);

gbCons.gridx = 1;
gbCons.gridy = 1;
txtUsrPwd = new JPasswordField(20);
panel.add(txtUsrPwd,gbCons);


JPanel btnPanel = new JPanel();
btnLogin = new JButton("登陆");
btnPanel.add(btnLogin);
btnLogin.addActionListener(this);

btnRegister = new JButton("注册");
btnPanel.add(btnRegister);
btnRegister.addActionListener(this);

btnCancel = new JButton("取消");
btnPanel.add(btnCancel);
btnCancel.addActionListener(this);

gbCons.gridx = 1;
gbCons.gridy = 3;
gbCons.anchor = GridBagConstraints.EAST;

panel.add(btnPanel,gbCons);

this.getContentPane().add(panel);
this.setVisible(true);
this.setSize(450,200);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

}
void showdlg(){
JOptionPane.showMessageDialog(this,
"用户名密码不正确","错误信息",JOptionPane.ERROR_MESSAGE);
}

public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
if(button.equals(btnCancel)){
this.dispose();
}
else if(button.equals(btnRegister))
{
//new Register();//调用注册程序
this.dispose();

}else{

try{
toServer = new Socket("机器名",1001);
streamFromServer = new ObjectInputStream(toServer.getInputStream());
streamToServer = new PrintStream(toServer.getOutputStream());

streamToServer.print("登陆信息");
UsrName = txtUsrName.getText();
UsrPwd = txtUsrPwd.getPassword();
strPwd = new String(UsrPwd);


streamToServer.println(UsrName+":"+UsrPwd);

String fromServer = (String)streamFromServer.readObject();

if(fromServer.equals("欢迎")){
//new clientInt(UsrName);

this.dispose();
}
else{
this.showdlg();
}

}
catch(Exception el)
{
System.out.println("发生异常:"+el.toString());
}
}
}

public static void main(String args[]){
new Login();
}
}

这个不会什么错吧


----------------解决方案--------------------------------------------------------
帮忙帮到一半 我还没明白

就全跑了
----------------解决方案--------------------------------------------------------
JAVA ?
当我没说过要帮你....撤退了~~~
----------------解决方案--------------------------------------------------------
  相关解决方案