0

所以我一直在尝试将我的批处理文件转换为 bash。我正在运行一个 linux (ubuntu) 服务器,我想在那里运行我的游戏服务器而不是我的工作/游戏机。这是重击

@echo off
title BSH 525
cd ../build 
"C:\Program Files\Java\jdk1.7.0_03\bin\java.exe" -Xmx700m -server -cp .;../deps/*; net/com/codeusa/Server 43595
pause

这是我在 bash 上的尝试

!/bin/bash
cd ../build 
java -server -cp .;../deps/*; ../net/com/codeusa/Server 43595

我不断收到诸如找不到文件之类的错误,或者 java 抱怨语法

4

3 回答 3

1

几件事:

  • 第一行应为:

    #!/bin/bash
    

    带头#。这是一种特殊的语法,它告诉内核应该使用哪个 shell 来运行您的脚本。

  • 在 Unix 中,路径:在 Java 类路径中用 分隔,而不是;. 所以试试:

    java -server -cp .:../deps/* ../net/com/codeusa/Server 43595
    

    ;实际上是一个命令分隔符,因此 shell 将您的单行视为三个不同的命令。

于 2012-07-24T03:49:48.613 回答
0

在 Linux 中,目录分隔符:;

java -server -cp .:../deps/*: ../net/com/codeusa/Server 43595
于 2012-07-24T03:49:02.453 回答
0

你有几个问题:

!/bin/bash
cd ../build 
java -server -cp .;../deps/*; ../net/com/codeusa/Server 43595

hashbang不正确;它应该是:

#!/bin/bash

你有一个cd ../build-- 但是在你执行这个脚本之前当前的工作目录是什么?您必须得到正确的 - 或者使用绝对目录,例如:

cd ~/gameserver/build

而且,类 Unix 系统上目录列表的路径分隔符:不是;. 因此,您的 Java 命令应如下所示:

java -server -cp .:../deps/*: ../net/com/codeusa/Server 43595

(虽然我对类搜索路径末尾的空白目录感到惊讶......)

于 2012-07-24T03:52:28.880 回答