【问题标题】:converting java program to an executable on linux将java程序转换为linux上的可执行文件
【发布时间】:2012-07-13 01:22:34
【问题描述】:

我构建了一个由 2 个文件组成的 java 程序。包含主要内容的是SnortMonitor.java,它使用Database.java 连接到数据库并运行查询。我将它从我的 windows 机器迁移到它需要的 linux 机器。我能够在两台机器上编译并运行它。

我的最终目标,也就是我的下一步,是找到一种方法将它变成可执行文件,并在这台 linux 机器上持续运行。该程序旨在扫描数据库的每条记录并将某些信息发送到另一台机器,我需要它不断运行,以便它不断地将这些信息发送到另一台机器,或者每隔 3-5 秒发送一次。

一个脚注:由于某种我不知道的原因,一旦我完成编译并在 linux 上运行,我最终得到了 SnortMonitor.javaDatabase.javaSnortMonitor.classDatabase.class,我不确定这是否有所作为,我对 linux 很陌生。

【问题讨论】:

  • 感谢您的反馈,我已经编辑了我的帖子。
  • .class 文件是 java 编译器的输出。因此,如果您输入一个 .java 源文件,您将获得一个相应的 .class 文件,这是 Java 虚拟机 (JVM) 执行的内容,所以这是完全正常的(并且是在编译后预期的)

标签: java linux executable


【解决方案1】:

你有两个选择:

  1. 创建一个启动脚本,例如 .sh bash 脚本,用于启动您的 Java 应用程序。有关示例,请参阅 Tomcat startup script
  2. 使用GCJ 将其编译为机器码,但您的应用程序失去了可移植性。

我个人更喜欢第一个选项,但请选择适合您的选项。

【讨论】:

  • 就像我之前所说的,我是 java 新手,但我想我知道使用第一种方法是什么意思。因此,我将命名为“TESTRUN”的这个脚本将包含一个循环,该循环符合并不断运行我的程序。这是正确的吗?
  • +1 表示 shell 脚本可能性 #1。您可能还想编写一个相应的 dos 批处理脚本(.bat 文件),然后如果需要,人们也可以使用它在 Windows 上运行程序。
  • 你不需要在每次运行时都编译它。 Yon可以编译一次,然后每次运行“编译结果”(你说的.class)。仅当您更改源文件 (.java) 时才需要重新编译。
猜你喜欢
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 2010-11-14
相关资源
最近更新 更多