gpt4 book ai didi

java - 需要从控制台运行 .jar 才能工作

转载 作者:太空狗 更新时间:2023-10-29 12:41:01 25 4
gpt4 key购买 nike

我有一个 Java 应用程序。我正在使用 eclipse 编写、编译和创建可运行的 .jar。

该程序用于发现 OCF 设备。

它使用 UDP 和多播。

组播代码

public static void sendMulticast(byte[] data) throws Exception{
DatagramPacket pack = new DatagramPacket(data, data.length, mgroup, mport);
msocket.send(pack);
}
public static byte[] recieveMulticast(int timeout) throws Exception{
DatagramPacket packet;
byte[] data = new byte[AppConfig.ocf_buffer_size];

packet = new DatagramPacket(data, data.length);
msocket.setSoTimeout(timeout);
msocket.receive(packet);

return data;
}

当我从 eclipse 启动代码时,代码可以工作。当我在 Linux 上从控制台运行 .jar 时,它也有效。

但是当我双击启动它时,它不起作用。

从控制台启动时,它会在不到一秒的时间内找到我的测试设备。当双击开始时,它永远找不到。

我还没有在 Windows 上测试过它,但问题仍然存在于 Linux 上。

从控制台启动 .jar 或通过双击启动 .jar 有什么区别?为什么它会影响多播消息?

我正在使用“将所需的库打包到生成的 JAR 中”。我在 eclipse 中使用 java 1.7,在 Linux 中使用 1.8,也许这就是问题所在?但是为什么从控制台运行它可以工作?如果我使用 sudo 我会理解,但我没有。

最佳答案

当您从控制台运行任何 jar 时,控制台/终端知道哪个程序负责运行任何 jar 即

java -jar example.jar 

但是当双击环境时,OS/GUI 管理器不知道默认负责程序来运行 jar。 (同样,当您尝试打开一些未知的扩展文件时,操作系统会询问您打开哪个程序/应用程序)

要使 Java 默认打开 .jar 文件(即双击),请右键单击任何 .jar 文件以选择“属性”。在以下窗口中选择“打开方式”选项卡以查看例如以下选择:

enter image description here

关于java - 需要从控制台运行 .jar 才能工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44364975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com