Εμφάνιση 1-12 από 12
  1. #1
    1)
    Έχω δημιουργήσει μία εφαρμογή που χρησιμοποιεί (μέσα από ODBC) μία βάση δεδομένων
    Access.Η εφαρμογή δημιουργήθηκε μέσα σε περιβάλλον NetBeans (αρχικά version 6.7 και 6.7.1 και τώρα 6.8) Ενώ λοιπόν η εφαρμογή δεν έχει κάποιο λάθος και έτρεχε κανονικά μέσα στον NetBeans ξαφνικά ενώ προσπαθώ να την τρέξω (run) παίρνω την παρακάτω εξαίρεση:
    Κώδικας:
    run:
    java.lang.UnsupportedClassVersionError: dentist_trial_test/Main : Unsupported major.minor version 51.0
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:637)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:280)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:215)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:208)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
    Error: Could not find the main class.
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" Java Result: 1
    BUILD SUCCESSFUL (total time: 2 seconds)
    απ ότι καταλαβαίνω (αν καταλαβαίνω και σωστά ) δεν πρέπει να βρίσκει την main class η οποία όμως υπάρχει.
    Τί θα πρέπει να αλλάξω στις ρυθμίσεις για να τρέξει?

    2)
    Επίσης σε κάποιο σημείο χρησιμοποιώ τον τύπο δεδομένων:
    Vector<Cector<String>> δηλαδή ένα πίνακα τύπου Vector<String> που έχει ωσ στοιχεία
    άλους πίνακες γραμμές Vector<String>>.
    Όταν λοιπόν κάποια στιγμή (και πριν την παραπάνω εξαίρεση) έτρεχα το πρόγραμμα μέσα από τον NetBeans (και όχι απ το jar αρχείο) έτρεχε κανονικά και μου εμφάνιζε τα δεδομένα που είχα αποθηκεύσει στο Vector<Vector <String>> , όταν όμως το έτρεχα απ το jar δεν τα εμφάνιζε γεγονός που σημαίνει ότι για κάποιο λόγο δεν πρέπει να έχουν φορτωθεί στο δημιουργημένο project οι απαραίτητες βιβλιοθήκες (απαιτείται να τρέχει αν θυμάμαι καλά σε JDK-6 ή μεταγενέστερο προκειμένου να αναγνωρίσει αυτόν το τύπο δεδομένων Vector<Cector<String>> ).
    Τι θα πρέπει να κάνω στις ρυθμίσεις και πριν πατήσω Clean and Bluild στο NetBeans για την δημιουργία του jar αρχείου προκειμένου να τρέχει απ το jar κανονικά?

    σας ευχαριστώ πολύ

  2. #2
    Εγγραφή
    19-03-2009
    Περιοχή
    ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
    Ηλικία
    48
    Μηνύματα
    288
    Downloads
    0
    Uploads
    0
    στο command prompt γράψε αυτό

    java -version

    να δεις τι έκδοση java έχεις

  3. #3
    Microsoft Windows XP [Έκδοση 5.1.2600]
    (C) Πνευματικά δικαιώματα 1985-2001 Microsoft Corporation

    έχω την 1.7 όπως φαίνευται και παρακάτω

    java version "1.7.0-ea"
    Java(TM) SE Runtime Environment (build 1.7.0-ea-b24)
    Java HotSpot(TM) Client VM (build 12.0-b01, mixed mode, sharing)

  4. #4
    Εγγραφή
    22-10-2004
    Μηνύματα
    2.435
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΟΛΑΡΓΟΣ
    Router
    Speedport Plus
    Το UnsupportedClassVersionError σου λέει ότι το jvm βρίκσει μια κλάσση που δεν υποστηρίζει την έκδοσή της. Στο netbeans έχεις βάλει να κάνει build με javac 1.7 μάλλον, αλλά πας να την τρέξεις με java 1.6 (ή ίσως και το αντίθετο). Πρόσεξε ποιό jdk χρησιμοποιεί το netbeans και να πας να το τρέξεις με το ίδιο και μόνο του.

    ΥΓ: Γιατί να χρησιμοποιήσεις 1.7; Χρειάζεσαι κάποιο από τα νέα features; Δεν έχει βγει ακόμα, είναι σε beta απ'όσο ξέρω.
    Heh, screw you guys... I'm going home!

  5. #5
    Εγγραφή
    19-03-2009
    Περιοχή
    ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
    Ηλικία
    48
    Μηνύματα
    288
    Downloads
    0
    Uploads
    0
    δοκίμασε από το μενού run του netbeans να τρέξεις
    το clean and build main project.

  6. #6
    Εγγραφή
    17-09-2007
    Ηλικία
    47
    Μηνύματα
    865
    Downloads
    1
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από dvm Εμφάνιση μηνυμάτων
    Το UnsupportedClassVersionError σου λέει ότι το jvm βρίκσει μια κλάσση που δεν υποστηρίζει την έκδοσή της. Στο netbeans έχεις βάλει να κάνει build με javac 1.7 μάλλον, αλλά πας να την τρέξεις με java 1.6 (ή ίσως και το αντίθετο). Πρόσεξε ποιό jdk χρησιμοποιεί το netbeans και να πας να το τρέξεις με το ίδιο και μόνο του.
    Το Exception δείχνει ακριβώς αυτό. Δές από Tools->Java Platforms τι γίνεται. Δές και στο PATH τι γίνεται, δηλ με ποια σειρά είναι δηλωμένα τα JREs.

    Παράθεση Αρχικό μήνυμα από dvm Εμφάνιση μηνυμάτων
    ΥΓ: Γιατί να χρησιμοποιήσεις 1.7; Χρειάζεσαι κάποιο από τα νέα features; Δεν έχει βγει ακόμα, είναι σε beta απ'όσο ξέρω.
    Και αυτό πρόσεξε.

    Παράθεση Αρχικό μήνυμα από virxen Εμφάνιση μηνυμάτων
    δοκίμασε από το μενού run του netbeans να τρέξεις
    το clean and build main project.
    Κάντο και αυτό που είναι γρήγορο.

  7. #7
    Το clean and build δεν δουλεύει ...
    κάποια στιγμή όμως δούλεψε όταν αλλαξα σε JDK 6
    στο Properties/Sourse binary format= JDK 6 και αντίστοιχα:
    tools/java platforms:JDK 1.6 που σημαίνει ότι είχες δίκιο φίλε μου
    αλλά δεν λειτουργεί σωστά το jpopup menu που έχω ενσωματώσει σε κάποια κλάση
    επίσης έχω συμπεριλάβει και δεδομένα που φορτώνονται σε Vector<Vector<String>>
    και κάποια στιγμή νομίζω ότι μου ζητούσε ως απαραίτητο το JDK 6 ή νεώτερο γιαυτό και είχα επιλέξει το JDK 7.

    Επίσης θα ήθελα με την ευκαιρία αν κάποιος γνωρίζει να με πληροφορίσει πως θα χρησιμοποιήσω το jar αρχείο.
    Δηλαδή αφού κατασκευάσω το project εκτός απ τη βάση δεδομένων σε Access που χρησιμοποιεί τι άλλο θα πρέπει να παραδώσω σε ένα φίλο μου που θα το
    χρησιμοποιήσει ?
    Αρκεί μόνο το jar αρχείο ή πρέπει να του δώσω όλο το φάκελο με το project που δημιουργεί ο NetBeans στο φάκελο NetBeansProjects στα Έγγραφά μου και περιέχει στο "dist" φάκελο το jar αρχείο?

    και πάλι σας ευχαριστώ πολύ παιδιά.

  8. #8
    Εγγραφή
    22-10-2004
    Μηνύματα
    2.435
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΟΛΑΡΓΟΣ
    Router
    Speedport Plus
    Αν χρησιμοποιείς και κάποια άλλα jar (που λογικά θα χρησιμοποιείς, πχ jdbc drivers για την access) αυτά τα δηλώνεις στο MANIFEST.MF (Class-Path). Απλά εκεί θέλει προσοχή πως θα τα δηλώσεις. Αν θυμάμαι καλά παίρνει μόνο relative path και όχι absolute. Οπότε μια λογική δομή θα ήταν:

    Κώδικας:
    [distribution directory]
       MyApplication.jar
       [lib directory]
          mydriver.jar
          anotherlib.jar
       mydb.mdb
    Και στο Manifest βάζεις μεταξύ άλλων: Class-Path: lib/mydriver.jar lib/anotherlib.jar
    Ελπίζω να κατάλαβες πως λειτουργεί περίπου. Άνοιξε και κανένα υπάρχον jar να δεις πως είναι μέσα το manifest.mf (META-INF directory).
    Heh, screw you guys... I'm going home!

  9. #9
    Η αλήθεια είναι ότι δεν γνωρίζω αρκετά πράγματα για τον τρόπο λειτουργίας της Java ούτε επίσης και για το NetBeans και τις δυνατότητές του ...πριν από χρόνια είχα ασχοληθεί με το JBuilder με κάποια projects...
    Στο project που δημιούργησα η εφαρμογή επικοινωνεί με το αρχείο της Access μέσω ODBC.
    Είδα όμως τελευταία ότι υπάρχει η δυνατότητα δημιουργίας τόσο μιας βάσης δεδομένων όσο και της σύνδεσής της με την εφαρμογή μέσα από περιβάλλον NetBeans και θα ήθελα να το ψάξω λίγο περισσότερο γιατί μου φαίνεται αρκετά ενδιαφέρον.
    Οπότε θα επανέλθω με ερωτήματα και απορίες πιό συγκεκριμένες.

    Τώρα αυτό που με απασχολεί είναι το εξής:
    Πώς θα διασφαλήσω τον κώδικα ούτως ώστε να μην είναι προσπελάσιμος απ τον χρήστη της εφαρμογής.
    Είδα ότι το jar αρχείο αποσυμπιεζόμενο εμφανίζει τα πακέτα με τα αρχεία της εφαρμογής.
    Δεν ξέρω όμως αν κάποιος μπορεί να τα διαβάσει στη μορφή αυτή.
    Τι κάνω για να μην μπορεί κάποιος να αποσυμπιέσει το jar αρχείο?
    Και γενικότερα αν υπάρχει δυνατότητα να κλειδώσω με κωδικό τόσο το jar όσο και ότι άλλο θα παραδώσω.
    (Στην Access ξέρω βάζω κωδικό χρήστη και password με το jar τι γίνεται?)

    ευχαριστώ πολύ

  10. #10
    Εγγραφή
    22-10-2004
    Μηνύματα
    2.435
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΟΛΑΡΓΟΣ
    Router
    Speedport Plus
    To jar δεν κλειδώνει ρε συ. Αν δεν μπορεί να το ανοίξει κάποιος πώς θα το ανοίξει η ίδια η java να το τρέξει; Μέσα δεν περιέχει ακριβώς τον κώδικά σου, αλλά τα .class files που είναι bytecode για τα jvm.
    Αυτά μπορείς να τα διαβάσεις με κάποιο decompiler όπως ο cavaj. Α αυτό μόνο για τα .java αρχεία. Ότι είναι xml, jsp μπορεί να το διαβάσει οποιοσδήποτε από το jar.

    Αν φοβάσαι να μην δουν τον κώδικά σου ψάξε για code obfuscators, αλλά προσωπικά δεν συμφωνώ με την χρήση του. Η ασφάλεια μιας εφαρμογής έγκειται στον καλό σχεδιασμό, όχι στην απόκρυψη κώδικα.
    Heh, screw you guys... I'm going home!

  11. #11
    φίλε μου σε ευχαριστώ πολύ για τις συμβουλές σου...
    απ ότι κατάλαβα παραδίδω μόνο ότι είναι σε jar(συν το αρχείο access).
    (αφού φάκελος "lib" μέσα στο "dist" με άλλα jar δεν υπάρχει σε αυτό το project μου).

  12. #12
    Εγγραφή
    22-10-2004
    Μηνύματα
    2.435
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΟΛΑΡΓΟΣ
    Router
    Speedport Plus
    Τίποτα ρε συ.
    Όχι lib δεν θα ήταν μέσα στο jar αλλά έξω από αυτό. Φαντάσου το αν ξέρεις όπως τα dll των windows. Ένα πρόγραμμα δεν ξανα-ανακαλύπτει τον τροχό, αλλά συνήθως χρησιμοποιεί βιβλιοθήκες. Αυτές τις βιβλιοθήκες πρέπει κάπου να τις βρει. Όμως όταν τρέχεις το java με -jar είναι λίγο δύστροπο και δεν μπορεί να του δώσεις command line το -classpath πρέπει να τα δηλώσεις στο MANIFEST.MF. Εκεί αν θυμάμαι καλά δέχεται μόνο relative path και όχι absolute.

    Αν και δεν πολυχρησιμοποιώ netbeans δες στο project σου, αν έχει δηλωμένα κάποια άλλα jar για να γίνει build και να τρέξει. Αυτά θα σου χρειαστούν όταν πας να τρέξεις το jar μόνο του και θα πρέπει το jar να μπορεί να τα βρει.
    Πχ μια άλλη μέθοδος είναι να κάνεις unzip τις κλάσσεις και να τις πακετάρεις μαζί με τον κώδικά σου μέσα στο jar. Αλλά νομίζω ότι να τα δηλώσεις στο MANIFEST.MF είναι πιο εύκολο.
    Heh, screw you guys... I'm going home!

Παρόμοια Θέματα

  1. Βοήθεια για Compaq Visual Fortran v6.6 (program exception - access violation)
    Από fivos_rg στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 1
    Τελευταίο Μήνυμα: 19-10-09, 00:13
  2. Βοηθεια για java blocking
    Από dionisisg στο φόρουμ Vodafone
    Μηνύματα: 8
    Τελευταίο Μήνυμα: 29-04-09, 17:03
  3. Exception κατά την κλήση Entity απο JSP [ Java EE ]
    Από SyMpToM στο φόρουμ Web authoring, development & web design
    Μηνύματα: 9
    Τελευταίο Μήνυμα: 11-05-08, 19:58
  4. Java ή C# για εφαρμογή?
    Από verbo στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 10
    Τελευταίο Μήνυμα: 22-12-06, 14:18
  5. Ημεριδα Netbeans & j2ee απο το Java Hellenic User Group 2/12
    Από javaneze στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 1
    Τελευταίο Μήνυμα: 08-11-06, 14:12

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας