1

さて、私はこのrun.batをCentOSで動作させようとしていますが、メインクラスをロードするのに苦労しています。私のサーバーでは、server/build/net/com/Server(mainclass) にあります。

ここに私のrun.batがあります

@echo off
title SunScape World 1 - Port 43594
cd ../build
"C:\Program Files\Java\jdk1.7.0_10\bin\java.exe" net/com/Server 43594
pause

CentOSで.shとして使用しているものは次のとおりです

cd ../build
"java" .net.com.Server 43594
pause

これが私が得ているエラーです:

Exception in thread "main" java.lang.NoClassDefFoundError:          //pvpscape/build/net/com/Server
Caused by: java.lang.ClassNotFoundException: ..pvpscape.build.net.com.Server
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: ./pvpscape/build/net/com/Server. Program will exit.
4

1 に答える 1

1

アホイ、

残念ながら、bat ファイルは DOS 用であり、Linux では動作しません。Linux のスクリプト言語は bash スクリプト (歴史的には sh スクリプト) です。以下は、bash スクリプトの導入ガイドです。

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

Bat スクリプトを確認すると、「../build」ディレクトリに入り、Java を使用して引数 43594 で「net/com/Server」を実行し、スリープ状態にしようとしていることがわかります。Linux の bash スクリプトでは、次のスクリプトを使用してこれを実現します。

#!/bin/bash
cd ../build
java net/com/Server 43594
sleep 10

次に、スクリプトを実行可能にする必要があります。

chmod 755 run.sh

最後に、このスクリプトを実行します。

# ./run.sh
于 2013-10-07T03:07:25.537 に答える