在没有控制台的情况下启动java程序

问题描述 投票:0回答:8

我正在尝试将此 GUI mod 用于 Minecraft 服务器。我编写了一个批处理文件,以便服务器可以使用更多 RAM 启动。当我只运行 .jar 文件时,不会打开任何命令窗口,并且运行得很好(当然,大约有 256mb 内存)我在网上读到 javaw 在没有命令行控制台的情况下启动了一个 jar 文件。但是当我使用 javaw 时,命令控制台会打开,但当我关闭它时,程序仍保持打开状态。这是我的批处理文件:

@echo off 
"%ProgramFiles(x86)%\Java\jre6\bin\javaw.exe" -jar -Xms1024m -Xmx1024m crafty.jar 
@echo on

我不太懂java,所以请尽量说清楚。谢谢

java windows batch-file javaw
8个回答
123
投票

如果你想在 windows 下启动一个没有控制台弹出窗口的 java 程序,这应该会有所帮助: 在命令提示符下键入以下内容:

启动javaw -jar -Xms1024m -Xmx1024m crafty.jar

如果您愿意,也可以将其编写为批处理文件。


12
投票
  • 你应该是“%ProgramFiles(x86)%\Java\jre6 in\javaw.exe”的
    Create Shortcut
    ,我们将其命名为
    Minecraft
    ,然后
  • 编辑
    Minecraft
    快捷方式的属性。在目标文本框中,将
    -jar -Xms1024m -Xmx1024m crafty.jar
    添加到 javaw.exe
  • 的末尾
  • Start in
    更改为包含 crafty.jar 的文件夹

双击 Minecraft 图标来为服务器加注星标。

仅此而已。


10
投票

使用

创建 .bat 文件
start javaw -jar yourjar.jar arg0 arg1

4
投票
start javaw -jar yourjar.jar arg0 arg1

将打开控制台,但立即关闭。它与运行窗口.exe 不同。


3
投票

您将始终打开和关闭命令窗口,因为您是在命令窗口或批处理脚本(启动隐式命令窗口来运行自身)内启动它。 为了不获得命令窗口,您必须从“非命令窗口”(即可执行启动器)打开文件。

看一下 Launch4j,它可以从 exe 运行 java 程序。如果您愿意,它还可以将 jar 文件隐藏在 exe 中。

http://launch4j.sourceforge.net/

有一个 YouTube 小片段,显示他们从 jar 中创建 exe。


2
投票

批处理文件是一种用预先编写的代码启动命令提示符的方法,使用javaw是一种打开然后关闭提示符的方法。就像我说的,批处理是一个命令提示符,你无法阻止它打开。


0
投票

已经过去几年了,但对于今天的 Windows 和 Linux 来说,你都有主管(基于 pytho)

基于python的supervisor窗口


0
投票

我有一个针对我的情况的解决方案:我想在没有 CMD 或 PowerShell 窗口的情况下启动 server.jar,而仅使用 .jar 窗口。

运行 Java 命令而不保留 Windows 终端

先决条件

  • 已安装 Java JRE 或 JDK
  • JAVA_HOME环境变量已配置。
  • 已配置 PowerShell 执行策略(例如:RemoteSigned)
  • 成为 Windows 管理员用户

如何

  1. 在服务器目录上创建一个名为
    start.ps1
    (Windows PowerShell 脚本)的文件,此文件中应仅包含 power shell 命令:
Start-Process -FilePath java -WindowStyle Hidden -ArgumentList "-Xms2G -Xmx4G -jar server.jar"

请注意,如果您的 java 版本有特定目录,则可以更改文件路径属性,例如:

-FilePath "C:\YourSpecificDirectory\java\bin\java.exe"
而不是
-FilePath java

就我而言,我的 PC 中只有一个默认版本的 Java,并且配置了 JAVA_HOME 环境变量,因此我不需要像上面的示例那样传递完整的文件路径。

  1. 使用 PowerShell 运行 start.ps1,开心吧!

脚本的简单手动快捷方式

为了方便我的使用(例如,我想从 Windows 搜索栏启动它)

  1. 在此目录中使用您喜欢的名称创建 Windows 快捷方式:

    C:\Users\YOUR_USER\AppData\Roaming\Microsoft\Windows\StartMenu\Programs

  • 名称示例:Minecraft 服务器
  1. 我放置的快捷方式属性中的“目标”字段

    powershell.exe -ExecutionPolicy Bypass -File start.ps1

结果目标会自动变成这样

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File start.ps1

  1. 我放置的快捷方式属性中的“开始于”字段

    C:\YourServerDirectory

  2. 完成!当您尝试在搜索栏上搜索“Minecraft Server”时,系统会向您推荐此快捷方式。执行后,它将仅使用 Minecraft 服务器窗口启动您的服务器。


其他自动化可能性

您还可以使用 Windows 任务创建自定义触发器来运行 start.ps1 文件。例如,每当您登录 Windows 帐户或启动 PC 时。

查看有关 Windows 任务的更多信息


我的研究和参考资料

在没有Window的情况下执行PowerShell命令

使用 PowerShell 运行 Java 命令

关于 PowerShell 执行策略

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.