如何将单个Java文件打包成可执行JAR文件

1. 项目结构

你的项目包括以下文件:

  • DateServer.java: Java源代码文件,包含HTTP服务器的实现。
  • MANIFEST.MF: MANIFEST文件,用于描述Java JAR文件的属性。
2. 示例代码

DateServer.java 文件包含了一个简单的HTTP服务器,它能够响应请求并返回当前日期和时间。这个服务器监听端口8022。

import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.Headers;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateServer {
    public static void main(String[] args) throws IOException {
        HttpServer server = HttpServer.create(new InetSocketAddress(8022), 0);
        server.createContext("/", new MyHandler());
        server.start();
        System.out.println("Server started on port 8022");
    }

    static class MyHandler implements HttpHandler {
        @Override
        public void handle(HttpExchange exchange) throws IOException {
            // 添加跨域相关的响应头
            Headers headers = exchange.getResponseHeaders();
            headers.set("Access-Control-Allow-Origin", "*"); // 允许所有来源
            headers.set("Access-Control-Allow-Methods", "GET"); // 允许的 HTTP 方法
            headers.set("Access-Control-Allow-Headers", "Content-Type"); // 允许的请求头
            headers.set("Access-Control-Max-Age", "3600"); // 预检请求缓存时间

            String response = "Current date and time: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
            exchange.sendResponseHeaders(200, response.length());
            OutputStream os = exchange.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }
}
3. MANIFEST.MF 文件内容

MANIFEST.MF 文件包含以下一行文本,用于指定Java JAR文件的主类(Main-Class):

Main-Class: DateServer

请确保在文本的末尾有一个空白行,并且没有其他额外的文本。

4. 编译和打包

你需要执行以下两个命令来编译和打包项目:

  • 使用 javac 编译 DateServer.java 文件:

    javac DateServer.java
    
  • 使用 jar 命令将编译后的 .class 文件和 MANIFEST.MF 文件打包成一个JAR文件:

    jar cfm DateServer.jar MANIFEST.MF *.class
    
5. 测试

你可以测试项目,启动JAR文件,并通过访问特定地址来获取当前日期和时间。请注意,你需要在命令行中执行以下命令启动服务器:

java -jar DateServer.jar

然后,你可以通过浏览器或其他HTTP客户端访问服务器的地址,通常是 http://localhost:8022(或你设置的地址)来获取当前日期和时间。

这样,你应该能够成功执行和测试这个项目了。如果有任何问题或需要进一步的帮助,请随时提问。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值