| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4707 人关注过本帖
标题:[求助]怎么把.class文件打包成可执行的jar文件
只看楼主 加入收藏
笑海
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:4934
专家分:25
注 册:2007-4-29
结帖率:0
收藏
 问题点数:0 回复次数:82 
[求助]怎么把.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 文件 打包 
2007-06-23 22:17
可可熊
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:553
专家分:0
注 册:2007-6-15
收藏
得分:0 
假设你要打包的程序目录为JAVA,它在名为TEST的目录中,你需要在TEST下创建一个目录:
META-INF
这个目录里包含一个文件:
MANIFEST.MF

这个文件里的内容:

Manifest-Version: 1.0
Main-Class: main

main为你要执行的主程序






2007-06-23 22:48
zhangyongbo
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-6-18
收藏
得分:0 
同意楼上的说法!
2007-06-23 22:56
笑海
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:4934
专家分:25
注 册:2007-4-29
收藏
得分:0 
你能说的详细点吗

命令行怎么输入

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

命令行怎么输入

兔子不吃窝边草
2007-06-23 23:01
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
使用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

用空格分开

可惜不是你,陪我到最后
2007-06-23 23:03
笑海
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:4934
专家分:25
注 册:2007-4-29
收藏
得分:0 
我把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
错误


兔子不吃窝边草
2007-06-23 23:08
笑海
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:4934
专家分:25
注 册:2007-4-29
收藏
得分:0 

我把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编辑过]


兔子不吃窝边草
2007-06-23 23:11
笑海
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:4934
专家分:25
注 册:2007-4-29
收藏
得分:0 

我的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();
}
}

这个不会什么错吧


兔子不吃窝边草
2007-06-23 23:16
笑海
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:4934
专家分:25
注 册:2007-4-29
收藏
得分:0 
帮忙帮到一半 我还没明白

就全跑了

兔子不吃窝边草
2007-06-23 23:49
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:191
帖 子:15071
专家分:17513
注 册:2007-4-22
收藏
得分:0 
JAVA ?
当我没说过要帮你....撤退了~~~

论坛是我家灌水靠大家
2007-06-23 23:50
快速回复:[求助]怎么把.class文件打包成可执行的jar文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012565 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved