Java 명령어가 xp에선 되고 우분투에선 안되네요

@java -Xmx512m -Xincgc -cp l1jserver.jar;lib\c3p0-0.9.1.2.jar;lib\mysql-connector-java-5.1.5-bin.jar;lib\javolution.jar l1j.server.Leaf

@pause

이렇게 된걸 xp에서 .bat된걸 실행하면 작동합니다.
그런데 우분투에서 실행하면


$ sudo ./ServerStart.bat
./ServerStart.bat: 1: @java: not found
./ServerStart.bat: 1: libc3p0-0.9.1.2.jar: not found
./ServerStart.bat: 1: libmysql-connector-java-5.1.5-bin.jar: not found
./ServerStart.bat: 1: libjavolution.jar: not found
: not foundrt.bat: 2: @pause

이렇게 뜨네요
그래서 @를 2개 없에고 해봤더니


$ sudo ./startsv
Usage: java [-options] class [args…]
(to execute a class)
or java [-options] -jar jarfile [args…]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is server,
because you are running on a server-class machine.

-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
              A : separated list of directories, JAR archives,
              and ZIP archives to search for class files.
-D<name>=<value>
              set a system property
-verbose[:class|gc|jni]
              enable verbose output
-version      print product version and exit
-version:<value>
              require the specified version to run
-showversion  print product version and continue
-jre-restrict-search | -jre-no-restrict-search
              include/exclude user private JREs in the version search
-? -help      print this help message
-X            print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
              enable assertions with specified granularity
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
              disable assertions with specified granularity
-esa | -enablesystemassertions
              enable system assertions
-dsa | -disablesystemassertions
              disable system assertions
-agentlib:<libname>[=<options>]
              load native agent library <libname>, e.g. -agentlib:hprof
              see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
              load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
              load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
              show splash screen with specified image

See http://java.sun.com/javase/reference for more details.
./startsv: 1: libc3p0-0.9.1.2.jar: not found
./startsv: 1: libmysql-connector-java-5.1.5-bin.jar: not found
./startsv: 1: libjavolution.jar: not found
: not found2: pause

이렇게 됩니다.
콘솔에서 $java 하면 나오는 설명이 튀어 나와요;;
1111디렉토리 안에 serverstart.bat, bin디렉토리와 그안의 파일들 전부 있는데, ( .jar 파일3개)
"not found"뜨네요;

하도 안되서 xp에서 똑같이 해보니 창이 딱 떴는데 우분투에선 저렇게 막힙니다.

[color=#0000FF:1cknqhhe]질문[/color:1cknqhhe]
왜 막히죠?
어떻게 해야 저거 실행가능한가요?

제가 확인해본결과, 크로스 플랫폼인 JAVA 프로그램이라고 해도, 그 프로그램이 크로스 플랫폼이 아닌 특정 운영체제 에서만 사용할수 있는 기능을 포함한 경우에는 실행이 안되는것 같습니다.

대표적인 예가 JAVA로 짜여진 PSP에뮬레이터 (Jpcsp) 입니다.

이건 윈도우에서는 실행이 되어도, 하드웨어 관련부분이 호환성을 타는지 리눅스에서 실행시키면 작동이 안되더군요.

(틀리면 지적좀… 굽신굽신~)

[quote="뮤러카인":32ki5b6p]@java -Xmx512m -Xincgc -cp l1jserver.jar;lib\c3p0-0.9.1.2.jar;lib\mysql-connector-java-5.1.5-bin.jar;lib\javolution.jar l1j.server.Leaf

@pause[/quote:32ki5b6p]
Windows에서 돌아가는 명령을 리눅스에서 돌리니까 안되죠. :)

우선, 경로 구분자(path seperator)가 다릅니다. 아시다시피 Windows는 ''이고 리눅스는 '/'이죠. 위에 경로 지정은 ''라 되어 있으니 리눅스에서 못 찾는 것이 당연합니다.

그리고 앞에 '@'가 Windows 배치 파일에선 아마 echo가 안되게 하는 거죠? 그니까 화면에 위 명령어가 찍히지 않게… 아주 오래 전 기억이라 가물가물합니다만… 암튼 그것도 빼시고요. @pause 이 라인은 그냥 빼도 되겠네요.

그리고 -cp로 classpath 지정 시에 경로 중간에 'l1’는 무슨 역할을 하는지 모르겠네요. 그것도 좀 의심(?)스럽고…

[quote="edogawaconan":32ki5b6p]제가 확인해본결과, 크로스 플랫폼인 JAVA 프로그램이라고 해도, 그 프로그램이 크로스 플랫폼이 아닌 특정 운영체제 에서만 사용할수 있는 기능을 포함한 경우에는 실행이 안되는것 같습니다.

대표적인 예가 JAVA로 짜여진 PSP에뮬레이터 (Jpcsp) 입니다.

이건 윈도우에서는 실행이 되어도, 하드웨어 관련부분이 호환성을 타는지 리눅스에서 실행시키면 작동이 안되더군요.[/quote:32ki5b6p]
Java가 cross-platform적인 특성을 갖도록 하는 것이, 각 플랫폼마다 VM이 각각 구현되어 있어서이죠. 즉, Java 코드 자체는 machine independent한 것이 보통입니다. "Write once, run anywhere" (WORA), Java의 모토죠. 뭐 Windows에서는 되는데, 리눅스에서 안된다면 다른 이유가 있을 겁니다. 예시한 프로그램을 검색해보니 Windows 버젼과 리눅스 64비트 버젼이 따로 있던데, 그건 아마 소스 코드 자체는 같을테지만 실행에 필요한 라이브러리들이나 그 라이브러리들의 위치, 혹은 실행 바이너리 등이 플랫폼마다 상이하기 때문일 겁니다. 순수한 Java 코드는 말 그대로 ‘어디에서나’ 실행 가능(해야)합니다. :)

[quote="edogawaconan":32ki5b6p](틀리면 지적좀… 굽신굽신~)[/quote:32ki5b6p]

저두요. :)

확장자 .bat는 dos 시절부터 사용하던 배치파일입니다.
리눅스 환경에서는 지원하지 않는거죠.
리눅스에서는 쉘스크립트 라는게 있습니다.
확장자는 보통 .sh 를 쓰죠. 뭐 없어도 되지만.

자바는 몰라서 패스. =.=

\ 와 / 를 발견 못하다니… :oops: :oops:
모든 분들 답변 감사합니다.
궁금증 해결에 큰 도움이 됐습니다.

막상 해보니 남들이 전부 만들어 놓은걸 이용만 하는거라…
처음 의도한 거랑은 다르네요; :(

일단 삽부터 들어야겠습니다. :twisted:

[quote="pcandme":19d6acpi]Java가 cross-platform적인 특성을 갖도록 하는 것이, 각 플랫폼마다 VM이 각각 구현되어 있어서이죠. 즉, Java 코드 자체는 machine independent한 것이 보통입니다. "Write once, run anywhere" (WORA), Java의 모토죠. 뭐 Windows에서는 되는데, 리눅스에서 안된다면 다른 이유가 있을 겁니다. 예시한 프로그램을 검색해보니 Windows 버젼과 리눅스 64비트 버젼이 따로 있던데, 그건 아마 소스 코드 자체는 같을테지만 실행에 필요한 라이브러리들이나 그 라이브러리들의 위치, 혹은 실행 바이너리 등이 플랫폼마다 상이하기 때문일 겁니다. 순수한 Java 코드는 말 그대로 ‘어디에서나’ 실행 가능(해야)합니다. [/quote:19d6acpi]

정확한 이유가 그것이었군요… 그러면 저도 포크레인을 불러서 리눅스에서 PSP에뮬을 실행해 봐야 겠네요 ㅎㅎ

그런데 PSP 에뮬레이터라니 컴퓨터 사양이 좋아야할지도…

구형 PSP(1005번)를 보유 중입니다만 요새 소니에게 버림받아서 막 나가는(?) 중입니다. (더이상 정펌 버젼 안 따라가기로…; )

국내 정발 당시 예매 순위 1000등 정도로 받았던 거라, 너무 오래되어서 배터리도 맛이 갔다는.;; 거치형으로 사용중.;;; (ㅠㅜ)

[quote="pcandme":pcuo334m]그런데 PSP 에뮬레이터라니 컴퓨터 사양이 좋아야할지도…

구형 PSP(1005번)를 보유 중입니다만 요새 소니에게 버림받아서 막 나가는(?) 중입니다. (더이상 정펌 버젼 안 따라가기로…; )
[/quote:pcuo334m]

PSP 성능이 PS2 (플스2)성능의 25% 정도라고 하니까 그렇게 높지는 않습니다…

그리고 문제의 PSP 에뮬은 아직 알파테스팅 상태라 공식게임은 구동 불가능 이라네요 ㅡㅡ;;

(홈브류 프로그램만 구동 가능)

P.S: 저는 PSP살려고 총알 모아놓은것이 라데온 HD4850때문에 깨졌다는 전설이…