Kirjoittaja Aihe: Ongelma java Middletin kääntämisessa. String hukassa.  (Luettu 2475 kertaa)

peran

  • Vieras
Jaahas pääsin melkein loppuun kääntämisessä, mutta nyt on tullut mutkia matkaan.  ???

Latasin täältä sorsan, jonka haluaisin kääntää: http://sourceforge.net/project/showfiles.php?group_id=130988
Kyseinen tarvitsee real-java -paketin, jonka latasin täältä: http://sourceforge.net/project/showfiles.php?group_id=130157

Käännöksestä luin README-tiedoston, jonka mukaan yritin tehdä kansiot:
Eclipseä en kuitenkaan viitsinyt ladata, koska minusta sitä ei tarvita, vaikka ohje toista sanookin.
Readme sanoo seuraavaa..

Koodia: [Valitse]
Install Java J2SE JDK >= 1.5.0
Install WTK 1         >= 1.04           (for MIDP1 version)
Install WTK 2         >= 2.2            (for MIDP2 version)
Install WTK Nokia Series 40             (for Nokia version)
Install Antenna       >= 0.9.14
Install Proguard      >= 3.6
Install Eclipse       >= 3.2.0
...
It will probably only work in Linux.

                                        Location:
GNU bash                                /bin/sh
GNU Make                                ${PATH}/make
GCC                                     ${PATH}/gcc, ${PATH}/cpp
Ant                                     ${PATH}/ant
Java J2SE JDK         >= 1.5.0          ${PATH}/javac
WTK 1                 == 1.04           ../../WTK104
WTK 2                 == 2.2            ../../WTK2.2
WTK Nokia Series 40   == 2.2            ../../WTK104/lib/classes.zip
Antenna               == 0.9.14         ../../WTK104/lib/antenna-bin-0.9.14.jar
Proguard              == 3.6            ../../WTK104/lib/proguard-3.6.jar
Real.java             >= 1.09           ../real-java/Real.jpp

Ant:n ja JavaSDK 1.6 asensin pakettivarastosta. Sunin sivuilta hain WTK 2.5:n. WTK Nokia Series 40:stä hain Windows-softasta classes.zip:n, joka ilmeisesti toimii, koska kyseinen tiedosto sisältää vain headereitä. Proguardin ko. version hain googlea apuna käyttäen. Realin kuten jo mainitsin hain source forgesta.
loin symboliset linkit WTK104 ja WTK2.2 osoittamaan WTK2.5:ttä.

Makefilen muunsin tämän näköiseksi, että se lähti yrittämään kääntämistä:
Koodia: [Valitse]
$ cat Makefile
SHELL = /bin/sh
VERSION = 4.00
SHORTVERSION = $(subst .,,$(VERSION))
TARGETS = midp1/Calc.jad \
          midp1/target/Calc.jar \
          midp2/CalcMIDP2.jad \
          midp2/target/CalcMIDP2.jar \
          nokia/CalcNokia.jad \
          nokia/target/CalcNokia.jar \
          applet/target/CalcApplet.jar

BASEURL = http://midp-calc.sf.net

WTK_1 = ../../WTK104
WTK_2 = ../../WTK2.2
WTK_N = ../../WTK104
BOOTCLASSPATH_1 = $(WTK_1)/lib/midpapi10.jar
BOOTCLASSPATH_2 = $(WTK_2)/lib/midpapi20.jar:$(WTK_2)/lib/cldcapi10.jar
BOOTCLASSPATH_N = $(WTK_N)/lib/classes.zip:$(WTK_1)/lib/midpapi10.jar
# antenna and proguard must be installed in $(WTK_1)/lib
# ANTENNA_PATH paths are relative to the midp1/midp2/nokia subdirectories
ANTENNA_PATH= ../$(WTK_1)/lib/antenna-bin-0.9.14.jar:../$(WTK_1)/lib/proguard-3.6.jar

JFLAGS = -encoding "ISO8859-1" -O
JFLAGS_1 = -bootclasspath $(BOOTCLASSPATH_1) -d . $(JFLAGS)
JFLAGS_2 = -bootclasspath $(BOOTCLASSPATH_2) -d . $(JFLAGS)
JFLAGS_N = -bootclasspath $(BOOTCLASSPATH_N) -d . $(JFLAGS)

JAVAC = javac -source 1.3 -target 1.3
...


Kääntäminen antaa seuraavia erroreita:
Koodia: [Valitse]
$ make
rm -rf midp1/target
mkdir midp1/target
javac -source 1.3 -target 1.3 -bootclasspath ../../WTK104/lib/midpapi10.jar -d . -encoding "ISO8859-1" -O -d midp1/target src/midpcalc/Calc.java src/midpcalc/CalcCanvas.java src/midpcalc/CalcEngine.java src/midpcalc/GraphCanvas.java src/midpcalc/Real.java src/midpcalc/Complex.java src/midpcalc/Matrix.java src/midpcalc/Guess.java src/midpcalc/GFont.java src/midpcalc/GFontBase.java src/midpcalc/DataStore.java src/midpcalc/SetupCanvas.java src/midpcalc/CmdDesc.java midp1/src/midpcalc/MyCanvas.java
src/midpcalc/Calc.java:3: package java.io does not exist
import java.io.DataInputStream;
              ^
src/midpcalc/Calc.java:4: package java.io does not exist
import java.io.DataOutputStream;
              ^
src/midpcalc/Calc.java:5: package java.io does not exist
import java.io.IOException;
              ^
src/midpcalc/Calc.java:16: cannot access java.lang.Object
class file for java.lang.Object not found
public final class Calc
             ^
src/midpcalc/CalcCanvas.java:3: package java.io does not exist
import java.io.DataInputStream;
              ^
...
src/midpcalc/CalcEngine.java:1299: cannot find symbol
symbol  : class String
location: class midpcalc.CalcEngine
    void setMessage(String mc, String m) {
                    ^
src/midpcalc/CalcEngine.java:1299: cannot find symbol
symbol  : class String
location: class midpcalc.CalcEngine
    void setMessage(String mc, String m) {
                               ^
src/midpcalc/CalcEngine.java:1306: cannot find symbol
symbol  : class String
location: class midpcalc.CalcEngine
    public String getMessage() {
           ^
src/midpcalc/CalcEngine.java:1312: cannot find symbol
symbol  : class String
location: class midpcalc.CalcEngine
    public String getMessageCaption() {
           ^
100 errors
make: *** [midp1/target/Calc.jar] Virhe 1

Normaalissa javassa pystyn käyttämään String-luokkaa.

peran

  • Vieras
Vs: Ongelma java Middletin kääntämisessa. String hukassa.
« Vastaus #1 : 12.09.07 - klo:00.56 »
No, kun nyt sitten pakettienpurkuohjelmalla katsoin tiedostoja, niin sain ratkaistuksi ongelman.
Koodia: [Valitse]
$ cat Makefile
...
BOOTCLASSPATH_1 = $(WTK_1)/lib/midpapi10.jar
BOOTCLASSPATH_2 = $(WTK_2)/lib/midpapi20.jar:$(WTK_2)/lib/cldcapi10.jar
BOOTCLASSPATH_N = $(WTK_N)/lib/classes.zip:$(WTK_1)/lib/midpapi10.jar
...

Tässä pitäisi muuttaa seuraavaa...
Koodia: [Valitse]
...
BOOTCLASSPATH_1 = $(WTK_1)/lib/midpapi10.jar:$(WTK_1)/lib/cldcapi10.jar
...