Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > Réseau et multijoueurs
Réseau et multijoueurs Forum d'entraide pour le réseau et le multijoueur pour les jeux vidéo
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/09/2010, 17h49   #1
Fax37
Membre habitué
 
Inscription : octobre 2009
Messages : 133
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 133
Points : 126
Points : 126
Par défaut [Serveur java] sous GNU/Linux

Bien le bonjour à tous.

J'ai un soucis avec la mise en place d'un serveur java sur un serveur dédié Debian.

Lorsque j'essaye d'exécuter mon application, j'ai le message :
-bash: /home/serv.jar: cannot execute binary file

Alors je suppose que je ne peux tout simplement pas exécuter directement un .jar via ssh.

Ma question est alors la suivante :


Comment faire pour exécuter une application java sur un serveur dédié debian?
Dois-je utiliser mes .class , mes .java ?? Je suis un peu perdu

EDIT: Je viens tout juste de trouver la commande
java -jar "nom_de_mon_jar.jar"

Qui me donne : java -jar "serv.jar"
Failed to load Main-Class manifest attribute from
serv.jar

J'avais au préalable ajouté un fichier manifest.txt contenant le nom de ma classe principale. J'aurais besoin d'une marche à suivre simple.

EDIT 2: En suivant une seconde démarche j'ai, je crois, réussis à lancer mon programme, cependant j'ai eu un autre problème :

/home# java -jar serv.jar
Exception in thread "main" java.lang.NoClassDefFoundError: Serveur_tchat
Caused by: java.lang.ClassNotFoundException: Serveur_tchat
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Serveur_tchat. Program will exit.
Fax37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2010, 19h26   #2
kain_tn
Membre Expert
 
Avatar de kain_tn
 
Homme
Inscription : mars 2005
Messages : 599
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : mars 2005
Messages : 599
Points : 1 325
Points : 1 325
Bonjour,

À priori, ce n'est pas un problème de serveur dédié: si tu essaye de lancer ton .jar en console sur ton pc tu auras le même problème.

Comment as-tu généré ton .MANIFEST?
Avec Eclipse? Je pense qu'il contient des erreurs; tu as sans doute un problème de classpath

Quoi qu'il en soit, tu auras certainement plus de réponses en faisant une recherche avec les mots "jar" et "classpath" dans le forum java...

Par exemple:
http://www.developpez.net/forums/d97.../executer-jar/
ou
http://www.developpez.net/forums/d97...eme-classpath/

Cordialement,
kain_tn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2010, 19h50   #3
nouknouk
Modérateur
 
Avatar de nouknouk
 
Homme
Inscription : décembre 2006
Messages : 1 612
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 1 612
Points : 1 781
Points : 1 781
Hello,

on peut directement passer en paramètres à la fois le nom du (ou des) fichier Jar à inclure dans le classpath ainsi que la classe qui servira à lancer le programme:

Code :
1
2
 
java -cp monFichier.jar monPackage.MaClasse
Ici, MaClasse est une classe qui contient une fonction statique dont la signature est 'public void main(String[] args)'.
__________________
Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.
nouknouk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2010, 08h59   #4
Fax37
Membre habitué
 
Inscription : octobre 2009
Messages : 133
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 133
Points : 126
Points : 126
Oui c'est ce que j'ai fait pour ajouter le chemin vers ma classe principale.

Il semblerait que ca fonctionne désormais sous Linux mais pas sous Windows.

Merci de votre aide en tout cas.
Fax37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2010, 21h08   #5
Fax37
Membre habitué
 
Inscription : octobre 2009
Messages : 133
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 133
Points : 126
Points : 126
Alors un petit peu de news du front.

J'ai désormais un autre soucis....à priori de permission.

Exception : java.security.AccessControlException: access denied (java.net.SocketPermission 178.XX.XXX.XXX:7070 connect,resolve)

J'ai cherché et ai modifié mon java.policy comme suit
Code :
1
2
3
4
grant {
    permission java.security.AllPermission;
    permission java.net.SocketPermission "178.XX.XXX.XXX:7070","connect,accept,resolve";
};
Mais ça ne change rien

Je pensais qu'avec cette modification je donnais l'autorisation au serveur dont l'adresse IP est 178.XX.XXX.XXX de se connecter sur le port 7070.
Fax37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h55.


 
 
 
 
Partenaires

Hébergement Web