创建独立的jar文件

2023-12-02

我已经建立了一个jar使用 Netbeans 创建文件,它在我的系统中运行良好。但我想做jar能够在所有具有 JRE 的系统中运行的文件,即使是classpath没有在该系统中设置。

package circle;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


public class Circle {


    public static void main(String[] args) {


        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Circle().createAndShowGUI(); 
            }
        });
    }

    private void createAndShowGUI() {
        JFrame f = new JFrame("Swing Paint Demo");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        f.add(new MyPanel());
        f.pack();
        f.setVisible(true);

    }

    class MyPanel extends JPanel {

        public MyPanel() {

        setBorder(BorderFactory.createLineBorder(Color.black));

        addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
               startX=e.getX();
               startY=e.getY();
            }
        });

        addMouseMotionListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
               X=e.getX();
               Y=e.getY();
               repaint();
            }
        });

    }



        public Dimension getPreferredSize() {
        return new Dimension(250,200);
    }

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);       
        //g.setColor(Color.RED);
        //g.fillRect(squareX,squareY,squareW,squareH);
        g.setColor(Color.BLACK);
        g.drawOval(startX,startY,X-startX,Y-startY);
        g.fillOval(startX,startY,X-startX,Y-startY);
    }  


    }

        private int startX,startY,X,Y;
}

您可以使用ant构建可运行 JAR 的脚本。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project SimpleApp with libraries in sub-folder">
    <!--ANT 1.7 is required -->
    <target name="create_run_jar">
        <jar destfile="C:/Workspaces/SimpleApp/SimpleApp.jar">
            <manifest>
                <attribute name="Main-Class" value="SimpleApp"/>
                <attribute name="Class-Path" value=". SimpleApp_lib/lib1.jar SimpleApp_lib/lib2.jar"/>
            </manifest>
            <fileset dir="C:/Workspaces/SimpleApp/bin"/>
        </jar>
        <delete dir="C:/Workspaces/SimpleApp/SimpleApp_lib"/>
        <mkdir dir="C:/Workspaces/SimpleApp/SimpleApp_lib"/>
        <copy file="C:/path/to/lib/lib1.jar" todir="C:/Workspaces/SimpleApp/SimpleApp_lib"/>
        <copy file="C:/path/to/lib/lib2.jar" todir="C:/Workspaces/SimpleApp/SimpleApp_lib"/>
    </target>
</project>

在此示例中,该项目的SimpleApp取决于两个库:lib1.jar and lib2.jar,输出到bin with a MANIFEST.MF具有指定的属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建独立的jar文件 的相关文章

随机推荐

  • 录制/捕获当前播放的音频

    我想在 UWP 或 Windows Phone 8 1 中捕获 记录当前播放的音频 同样的事情是由 MEE dj UWP 应用程序在其应用程序中完成的 该应用程序能够捕获应用程序中当前播放的音频 有知道这方面情况的朋友请分享一下你的答案 如
  • Python/Django——“and”运算符和“&”运算符有什么区别

    我有一个有趣的 Django 问题 考虑以下 Model objects filter Q id test1 and Q id test2 这会返回预期的结果 但是 Model objects filter Q id test1 Q id
  • 我想用Java获取格式化的日期

    我想买一个新的Date对象具有SimpleDateFormat应用于它 我想做这样的事情 SimpleDateFormat myFormat new SimpleDateFormat dd MMM yyyy kkmm Date today
  • 打开 renderDataTable 中的行名称

    我正在 Shiny 中显示一个表格并想要使用渲染数据表但它没有显示对我来说很重要的行名称 渲染表显示行名称很好 但看起来不太好 I have output tab lt renderDataTable tabplot 并尝试过 output
  • 内核中的native_write_msr是做什么的?

    我有一个 python 脚本 一开始有时会很慢 我跑了perf top前几天我看到的只是 PerfTop 2 irqs sec kernel 100 0 exact 0 0 4000Hz cycles target pid 1234 100
  • 64 位 ALU 输出在 TestBench 波上显示高阻抗

    我必须制作一个 64 位 ALU 它接受 A 和 B 64 位输入 进位输入输入并输出 64 位结果以及 1 位进位输出 还有一个 5 位功能选择 FS 其中 FS 0 控制 B 是否反转 使用 2to1 多路复用器 F 1 对 A 执行相
  • Java GUI 应用程序控制器中的 ActionListener 是个好主意吗?

    我不想遵循 MVC 模式 在互联网上 我看到最著名的例子是计算器 例如here 我开始使用MVC模式的这种实现 但现在我对控制器中的动作侦听器有一些疑问 因为它们倾向于移动到视图 主要原因是有很多与视图相关的变化 字体 颜色 边框等 此外还
  • 使用中心插件将 jQuery 中心元素置于视口

    我目前正在使用 jQuery center 插件来居中我的 div 元素 到目前为止 它的工作范围已经达到了将其居中到包含父容器的位置 我想要它做的是将其居中到当前浏览器视口中心 那怎么办呢 我的设置是一个简单的链接 单击时会弹出一个 di
  • 在 Spring Boot 项目中启用 Multimap 的 json 序列化

    我想在 Spring Boot 应用程序中序列化一些 google guava Multimap public class SomeDTO JsonProperty Multimap
  • 错误 - ListenerManager 无法初始化 httpstransport 侦听器 - WSO2

    我启动了 WSO2 API Manager 1 8 的新副本 但无缘无故地出现以下错误 ERROR ListenerManager Couldn t initialize the httpstransport listener 我怎样才能解
  • 如何使表单(html、jsp)中的文本字段仅接受 dd/mm/yyyy 格式而不单击提交按钮

    我在 jsp 表单页面中有一个字段 它接受 起始日期 和 截止日期 现在我知道了可用于使用提交按钮验证这一点的脚本代码 但我的字段目前接受任何形式的 10 个字符 例如 28 07 2000 或 2807 2 00 它接受数字和任意数量的
  • 将 LINQ 结果送入 DataROW

    这有效 var Result from e in actual Elements select new Key e Key ValueNumber e Value ValueNumber ValueString e Value ValueS
  • 是否有支持默认属性值的 XML Schema 验证库?

    如果我读到默认属性值的 XML 模式规范正确的是 验证过程实际上应该更改 DOM 以填充默认值 default 指定该属性无条件出现在 模式验证后信息集中 这是对规范的正确解读吗 更重要的是 是否有任何库 Java C Python 等 支
  • 如何使用 __doPostBack()

    我正在尝试使用 ASP NET 创建异步回发 doPostBack 但我不知道该怎么做 我想使用普通 JavaScript 像单击按钮这样简单的事情可能会导致 doPostBack 触发事件 我只是想了解这个机制是如何运作的 您可以在 We
  • 将数据帧索引转换为日期时间

    如何将 pandas 字符串索引转换为日期时间格式 我的数据框df是这样的 value 2015 09 25 00 46 71 925000 2015 09 25 00 47 71 625000 2015 09 25 00 48 71 33
  • XmlTypeAttribute 仅适用于类中的属性

    我正在尝试使用 webservice 将其解析为 XML System Xml Serialization XmlTypeAttribute Namespace http www xx com zz Domain Public class
  • 如何在 FastAPI 中使用带有表单数据的 Pydantic 模型?

    我正在尝试从 HTML 表单提交数据并使用 Pydantic 模型对其进行验证 使用此代码 from fastapi import FastAPI Form from pydantic import BaseModel from starl
  • ggmap 400 错误请求

    我以前用过这个 而且一直有效 library ggmap newmap2 lt get openstreetmap bbox c left 71 2612362452596 bottom 42 3308503846824 right 71
  • 如何使Google电子表格的所有工作表在左上角显示A1?

    我有一个 72 页的 Google 电子表格 我正在尝试重置每个工作表 以便当您单击其选项卡时 它会在左上角显示 A1 也就是说 如果向下滚动一张工作表以致您看不到 A1 我希望它向后滚动以便您可以看到 我已经尝试过以下谷歌脚本 但没有任何
  • 创建独立的jar文件

    我已经建立了一个jar使用 Netbeans 创建文件 它在我的系统中运行良好 但我想做jar能够在所有具有 JRE 的系统中运行的文件 即使是classpath没有在该系统中设置 package circle import java aw