Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Javan suoritus Ubuntussa

Sivun loppuun

Juhku [01.05.2013 12:12:34]

#

Moi!

Oon tekemässä peli serveriä, joka pohjautuu Javaan. Nyt haaste on, että miten saan java pohjaisen tiedotot suoritetuksi Ubuntu serverissä?

Ja löytyy laitoin komennon

java -version

ja vastaus oli tälläinen

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) Server VM (build 23.21-b01, mixed mode)

Eli java on. Tässä on taas run.sh tiedosto jonka tein.

java -Xmx1500m -cp data/CompiledFiles;deps/poi.jar;deps/mysql.jar;deps/mina.jar;deps/slf4j.jar;deps/slf4j-nop.jar;deps/jython.jar;log4j-1.2.15.jar; server

kun laitan, että

 sudo ./run.sh

niin vastaus on tälläinen

./run.sh: 1: deps/poi.jar: Permission denied
./run.sh: 1: deps/mysql.jar: Permission denied
./run.sh: 1: deps/mina.jar: Permission denied
./run.sh: 1: deps/slf4j.jar: Permission denied
./run.sh: 1: deps/slf4j-nop.jar: Permission denied
./run.sh: 1: deps/jython.jar: Permission denied
./run.sh: 1: log4j-1.2.15.jar: not found
./run.sh: 1: server: not found

Miten saan sen toimimaan?

vuokkosetae [01.05.2013 19:42:41]

#

Virheilmoitus ei todellakaan paljasta vikaa.

echo foo; echo bar tulostaa foo bar eli puolipiste toimii erikoismerkkinä.

Mikäli tuo puolipisteillä oleva hökötys on lista, sulje se lainausmerkeillä. Yksi (stara ja heittomerkkinappi) tai kaksinkertaisilla (shifti ja 2).

Niin ja haluatko ajaa javaa roottina?

Juhku [02.05.2013 18:10:02]

#

Juu tarkoitus ois saada nuo java ohjelmat toimimaan jarkuvasti. Mutta tarviiko niille antaa erikseen mitään "permissioneja"? Anteeksi tietämättömyyteni, mutta olen jo epätoivoisesti käynyt googlen läpi monta kertaa.

peran [02.05.2013 18:14:33]

#

Kokeileppas seuraavaa...

sudo su
./run.sh

Hyvällä tuurilla toimii...

Metabolix [02.05.2013 19:34:12]

#

Tällä ongelmalla ei ole mitään tekemistä minkään tiedostojen oikeuksien kanssa. Sinulle sanottiin jo, että ;-merkkejä sisältävä parametri pitää kirjoittaa lainausmerkkeihin. Mitä kohtaa et ymmärrä?

Nyt komentotulkki tulkitsee rivisi lukuisina eri komentoina. Ensimmäinen komento on tämä:

java -Xmx1500m -cp data/CompiledFiles

Kai saat siitäkin jonkin virheilmoituksen?

Toinen komento on tämä:

deps/poi.jar

Siitä saat virheilmoituksen "deps/poi.jar: Permission denied", koska kyseistä jar-tiedostoa ei voi yrittää käynnistää irrallisena ohjelmana, koska sillä ei ole execute-oikeusbittiä – eikä kuulukaan olla!

Juhku [02.05.2013 20:01:12]

#

OK vaihdoin ; merkit " merkkiin, aluksi ilmoitti, että

Error: Could not find or load main class server.Server

Ja kun otin sen pois tiedostosta tulee vaan ne Javan komennot ja loppuun se Javan nettisivun osoite. Onko sitten mitään mahdollisuutta löytää jokaisesta .jar tiedostosta omaa main class tiedostoa ja laittaa se jokaiseen erikseen?

Metabolix [02.05.2013 20:34:17]

#

Juhku kirjoitti:

OK vaihdoin ; merkit " merkkiin, aluksi ilmoitti, että

Mitä, mitä, mitä, mitä, mitä? Ei käsketty vaihtaa mitään vaan lisätä lainausmerkit.

Tulipa nyt kuitenkin mieleen lisäksi, että myös Java noudattaa Linuxissa käyttöjärjestelmän perinteitä, joten polut pitää erotella kaksoispistein eikä puolipistein. Tämän näkisit itsekin, kun lukisit java-komennon käyttöohjeen – jonka lopuksi taisit saadakin näkyviin. Siinä lukee "a : separated list – –". Vaihda siis kaikki ;-merkit :-merkeiksi.

Juhku [03.05.2013 20:26:46]

#

Juu, no sain jotain aikaan ja tuli seuraava, juttu

deps/poi.jar: line 1: PK: command not found
deps/poi.jar: line 2: ?eS9: command not found
deps/poi.jar: line 14: syntax error near unexpected token `)'
??☼·h&???Z?0??U3C?↔???┘???K8??,??????,?[??▒/?D??B?=?
... Moderaattori poisti paljon roskaa ...
./run.sh: line 3: deps/jython.jar: cannot execute binary file
./run.sh: line 3: log4j-1.2.15.jar: command not found
./run.sh: line 3: server.Server: command not found

No en ole mikään mestari Linuxsin kanssa kun touhuan enemmän PHPn ja HTMLlän kanssa.... voisko muuntaa tän .bat tiedoston

@echo off
"C:\Program Files\Java\jdk1.7.0_17\bin/java.exe" -Xmx1300m -cp data/CompiledFiles;deps/poi.jar;deps/mysql.jar;deps/mina.jar;deps/slf4j.jar;deps/slf4j-nop.jar;deps/jython.jar;log4j-1.2.15.jar; server.Server
pause

niin .sh tiedostoksi? Olisin hyvin kiitollinen.....

Metabolix [04.05.2013 00:11:53]

#

#!/bin/sh
java -Xmx1300m -cp "data/CompiledFiles:deps/poi.jar:deps/mysql.jar:deps/mina.jar:deps/slf4j.jar:deps/slf4j-nop.jar:deps/jython.jar:log4j-1.2.15.jar" server.Server

Pitää kyllä olla jokin ongelma ymmärryksessä, jos ei pysty noudattamaan niin yksinkertaista ohjetta kuin "vaihda kaikki ;-merkit :-merkeiksi".

Juhku [04.05.2013 00:43:27]

#

Kiitos kokeilen tota!

Juhku [05.05.2013 14:36:16]

#

Hei!

Nyt on enää sellainen ongelma, että miten saan tuolle .sh tiedostolle osoitettua missä on tämä "server.Server". Tiedosto Server.CLASS sijaitsee kohteessa Data\CompiledFiles\server\Server.class, mutta miten saan sen osoitettua tuolle .sh tiedostolle, kun ei sitä tunnu millään löytyvän vaikka kuinka yritän, kun tulee aina ilmoitus:

Error: Could not find or load main class server.Server

Googlesta olen jo apua etsinyt, mutta en löydä.

vuokkosetae [06.05.2013 13:41:08]

#

No noin yksioikoinen virheilmoitus, jolla on vain kaksi vaihtoehtoa. Joko se ei löydä server.serveriä tai sitten se löytää sen mutta ei tajua siitä höykäsen pöläystä.

Oisko nyt opetella yksi komento. man java

Sieltä kohta -cp

man java kirjoitti:

Specify a list of directories, JAR archives, and ZIP archives to search for class files. Class path entries are separated by colons (:). Specifying -classpath or -cp overrides any setting of the CLASSPATH environment variable. If -classpath and -cp are not used and CLASSPATH is not set, the user class path consists of the current directory (.).

Eli suomeksi. Tunge se polku, mistä tuota server.serveriä haetaan tuonne classpathiin.

Kun nyt manin joukkoon pääsit, niin muita luettavia sivuja ovat ls cat bash rm cp ln echo pwd cd which sed grep cut tr java. Kyllä se siitä kun pääset alkuun. Joskus myös man -k asia voi auttaa oikeille dokumentaatioiden lähteille.

Linux ja UNIX yleensäkään eivät ole vaikeita ympäristöjä. Niissä on vain pieni oppimiskäyrän nousu heti alussa. Lyhyellä oppimäärällä pääsee pitkälle.

Juhku [06.05.2013 20:42:19]

#

OK, en oikein ymmärtänyt....

voukkosetae kirjoitti:

Eli suomeksi. Tunge se polku, mistä tuota server.serveriä haetaan tuonne classpathiin.

Löysin yhden .classpath tiedoston ja sisältö oli tälläinen

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="Data"/>
	<classpathentry kind="src" path="Economy Reset"/>
	<classpathentry excluding="server/model/players/" kind="src" path="src"/>
	<classpathentry kind="src" path="src/server/model/players"/>
	<classpathentry kind="lib" path="deps/jython.jar"/>
	<classpathentry kind="lib" path="deps/log4j-1.2.15.jar"/>
	<classpathentry kind="lib" path="deps/mina.jar"/>
	<classpathentry kind="lib" path="deps/mysql.jar"/>
	<classpathentry kind="lib" path="deps/poi.jar"/>
	<classpathentry kind="lib" path="deps/slf4j-nop.jar"/>
	<classpathentry kind="lib" path="deps/slf4j.jar"/>
	<classpathentry kind="lib" path="deps/xstream.jar"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="output" path="bin"/>
</classpath>

Pitäisikö tuonne lisätä jotain?

Juhku [08.05.2013 21:06:00]

#

Kertooko kukaan mitään vai mikä on?

Metabolix [08.05.2013 21:27:20]

#

Lisää tämä ennen java-komentoa:

cd "$(dirname "$0")"/data/CompiledFiles

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta