probleme compilation Java

jean-lou

Membre actif
4 Novembre 2004
441
20
38
toulouse
Bonjour,
Je suis sous Mac OS X 10.4.
Ma version Java
JEanlOu$ java -version
java version "1.4.2_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-232)
Java HotSpot(TM) Client VM (build 1.4.2-54, mixed mode)

Which java
JEanlOu$ which java
/usr/bin/java

Pour mon Tp, j ai cinq fichiers .java dans le meme dossier, d'ou ma ligne de compilation
lns-bzn-53-82-65-35-43:/Volumes/Macintosh HD/Users/JEanlOu/Documents/INSA/java_tp/tp1_essai JEanlOu$ javac *.java

8 erreurs d'apres mon mac toute dans le meme style (sachant que le programme marche parfaitement sous Linux et sous Windows) :
BasicMenu.java:254: cannot resolve symbol
symbol : method parseBoolean (java.lang.String)
location: class java.lang.Boolean
boolean vol = Boolean.parseBoolean(jvol.getText());
^
BasicMenu.java:255: cannot resolve symbol
symbol : method parseBoolean (java.lang.String)
location: class java.lang.Boolean
boolean marche = Boolean.parseBoolean(jmarche.getText());

Comme si il ne comprenait pas quelque chose, ca semble etre le Jdialog qu il n a pas l air de connaitre!!
Est ce vraiment ca?
SI oui, ou le trouver ?

Merci Beaucoup
JEanlOu
 
A vue de nez, le class path n'est pas défini.

Tu peux, soit le définir en ligne de commande, soit mettre une variable d'environnement CLASSPATH.

Par défaut, tu n'as ni l'un, ni l'autre de défini dans le bash ;-).

Par contre, je ne saurais trop te conseiller d'utiliser Ant pour gérer les différentes tâches de compilation, packaging...
 
Merci pour ta réponse !!!

Mais en fait suis trop inexpérimenté pour comprendre.
Je ne comprends pas pourquoi il faudrait un classpath puisque tous les .java concerné sont dans le répertoire courant et donc comme le classpath est justement dans le répertoire courant.

If neither CLASSPATH nor -classpath is specified, the user class path consists of the current directory

Si c'est pour qu il trouve les import qui sont au passage ceci :
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import java.lang.*;
J ai d ailleurs l impression que c'est java.lang qui pose probleme.
Dans ce cas donc quel est la demarche precise pour specifier les variables d'environnement (java.lang donc peut etre) ou quel est la ligne de commande a taper precisement. :D :D

Merci beaucoup
JEanlOu
 
Pour résumer, le compilateur ne trouve pas le fichier où est défini JDialog (par exemple).

Voici un code qui compile tout seul (fichier Hello.java):
public class Hello {
public static void main(String[] args) {
System.out.println("Hello MacGe");
System.exit(0);​
}
}

en faisant :
javac Hello.java


Si par contre, je rajoute l'affichage en faisant:
import javax.swing.JOptionPane;

public class Hello {
public static void main(String[] args) {
System.out.println("Hello MacGe");
JOptionPane.showMessageDialog(null, "Hello Macgeneration");
System.exit(0);​
}
}

je suis obligé de le compiler avec:
javac -sourcepath System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar Hello.java
 
Le probleme a l'air plus terrible. J'ai des programmes relativement compliqué qui tourne (avec interface graphique et tout et tout) et pour le programme en question, ca ne marche pas, les lignes à incriminer sont celle ci
boolean vol = Boolean.parseBoolean(jvol.getText());
boolean marche = Boolean.parseBoolean(jmarche.getText());
boolean chante = Boolean.parseBoolean(jchante.getText());
boolean dangereux = Boolean.parseBoolean(jdangereux.getText());
Apparement les booleens, il n aime pas. Je vais laisser tomber pour l instant
Desolez de tout ce derangement,
Merci de nouveau
JEanlOu
 
Apparement c'est un problème de version, la fonction que j'utilise n'existe pas dans la version 1.4.2, il faut donc que je compile avec la version 1.5 que j'ai déjà installé mais qui ne semble pas se mettre par défault. J'ai vu un post qui en parlait je vais donc allé voir. Merci beaucoup
JEanlOu :D

Edit: Probleme de version en fait, tout simplement, desolez, Merci encore, ca marche nikel maintenant
 
Auriez vous des sites de tutoriel à me proposer, voir des livres ? ou même des exemples ?
 
GrandGibus a dit:
Par contre, je ne saurais trop te conseiller d'utiliser Ant pour gérer les différentes tâches de compilation, packaging...

Ou même maven c'est plus hype pour gérer un projet... :)
 
J'allais le dire... il te faut compiler avec Java 1.5. La méthode parseBoolean n'existe que depuis 1.5 (liens 1.4 et 1.5).
Fais tes mises à jour systèmes si tu es en 10.4. Autrement, tu ne pourras pas installer le jdk 1.5 malheureusement.
 
Philou1789 a dit:
Je ne pensais pas que Swing était util, je croyais que le Xcode et l'API Cocoa le remplacait ?
J'ai faux ?
Swing permet d'écrire des applications exécutables sur toutes les plate-formes. Les application écrites avec Cocoa/Java ne seront exécutables que sur Mac OSX. A toi de voir ce que tu veux.
 
Il faut surtout garder à l'esprit que Apple a abandonné le support Cocoa depuis Java !

Mis à part un interet purement technique et pour satisfaire une certaine curiosité, j'ai du mal à voir l'interet de développer une application Cocoa en Java, car en faisant ainsi, on perd l'un des gros avantages de Java: la portabilité (Build once, run anywhere).

De plus, performances mise à part (quoique ça s'améliore), Swing est très bien porté sous Mac OS X. En faisant un minimum attention, difficile de différencier un programme Swing d'une application Cocoa:
ccamj.png
.

\gg
 
Donc si je résume Xcode est inutile si on veut développer en Java, il suffit juste de faire en sorte que son code java ressemble à de l'Apple avec Swing.
C'est bien ça ?
 
Philou1789 a dit:
Donc si je résume Xcode est inutile si on veut développer en Java,
Oui.., Un simple éditeur de texte peut suffir ! Quoiqu'il en soit, un IDE (Eclipse, NetBeans, XCode...) t'aidera dans l'écriture du code grace à des fonctions tells que la completions, les imports automatiques ou encore la compilation en ligne pour la vérification des erreurs en cours de frappe.


Philou1789 a dit:
... il suffit juste de faire en sorte que son code java ressemble à de l'Apple avec Swing...
Comme dit plus haut, Swing est une librairie pour faire des applications. Swing est fourni dans le JDK par défaut (contrairement à SWT) et son look'n'fill est déjà du mac os sous mac os, du linux sous linux et du windows...

Si tu veux que la ressemblance soit totale, il suffit de faire attention à quelques astuces de programmation (très légères). De nombreux articles expliquent en détails ces points (ici ou )

Le plus simple pour que tu t'en rendes compte est de développer une fenêtre type HelloWorld ;)...

\gg
 
J'ai déjà fait le fameux tutoriel de conversion monétaire Xcode/java.
Maintenant je m'attaque à du plus lourd : Lire/ecrire dans un fichier , remplir un tableau, selectionner les lignes, en supprimer, ....

En tout cas merci pour ton aide.
 
Pour faire du Java, je trouve Eclipse tout de même plus pratique que XCode, sauf la gestion des workspaces que je n'apprécie vraiment pas.
 
ntx a dit:
Pour faire du Java, je trouve Eclipse tout de même plus pratique que XCode, sauf la gestion des workspaces que je n'apprécie vraiment pas.

+1 et +1 :)... Eclipse est également mon ide favori, et je le préfère de loin à XCode. Cependant, il peut en rebuter de prime abord... notament la gestion des workspaces qui est un peu obscure pour le débutant. C'est pour cela que NetBeans peut également s'avérer un bon candidat. D'autant plus qu'il me semble qu'ils viennent de sortir un éditeur WYSIWYGswing interessant.

Philou1789 a dit:
Quand je pense qu'il y a 3 ans j'étais un pro du .NET :up: depuis je ne developpe plus dutout :sick: et j'ai tout perdu :affraid::rose:

Bah.... c'est comme le vélo, ça ne s'oublie pas :) !