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
    

    先頭に#. これは、スクリプトを実行するためにどのシェルを使用する必要があるかをカーネルに伝える特別な構文です。

  • Unix では、パスは:Java クラスパスでは ではなく で区切られます;。だから試してください:

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

    ;実際にはコマンド区切りであるため、シェルは 1 行を 3 つの異なるコマンドとして扱っていました。

于 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 に答える