Applet και διάβασμα από αρχείο
Applet και διάβασμα από αρχείο
Έστω ότι έχω ένα applet που διαβάζει ένα string από κάποιο αρχείο έστω το a.txt και το εμφανίζει στην οθόνη.Αν είναι στο τοπικό σύστημα αρχείων είναι μια χαρά.Αν όμως όλη αυτή η ιστορία γίνεται σε web server θα δουλέψει?Δηλαδή ο client που θα τρέξει το applet από άλλο μηχάνημα θα δει το string δηλαδή το αρχείο θα κατέβει από τον server?
H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest
- Sreak
- Venus Project Founder
- Posts: 956
- Joined: Fri Apr 02, 2004 9:56 am
- Academic status: PhD
- Location: eltrun.gr
Χωρίς να έχω δουλέψει ποτέ με applets, μια λογική απάντηση θα ήταν το .txt να βρίσκεται σε ένα path στον σέρβερ σου και να το καλέις κάπως έτσι: http://www.yourserver/file.txt
- tsilochr
- Wow! Terabyte level
- Posts: 3246
- Joined: Tue Mar 16, 2004 2:47 pm
- Academic status: PhD
- Gender: ♂
- Location: mm.aueb.gr
- Contact:
θα προεκτείνω λίγο την απάντηση του Sreak αλλά κι εγώ δεν έχω δουλέψει με applets.
Λογικά λοιπόν επειδή το applet εκτελείται τοπικά, βλέπει το τοπικό file system. Επομένως για να δει αρχεία που βρίσκονται σε κάποιο εξυπηρετητή θα πρέπει να είναι εύκαιρα για προσπέλαση από το Internet (δλδ σε κάποιο URL) και επίσης δεν ξέρω αν τα applets μπορούν ή έχουν δικαίωμα να το κάνουν αυτό...
Λογικά λοιπόν επειδή το applet εκτελείται τοπικά, βλέπει το τοπικό file system. Επομένως για να δει αρχεία που βρίσκονται σε κάποιο εξυπηρετητή θα πρέπει να είναι εύκαιρα για προσπέλαση από το Internet (δλδ σε κάποιο URL) και επίσης δεν ξέρω αν τα applets μπορούν ή έχουν δικαίωμα να το κάνουν αυτό...
- Einherjar
- Venus Project Founder
- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
- Contact:
Αν το αρχείο βρίσκεται στον ίδιο server με το applet τότε δε θα έχεις κανένα πρόβλημα να διαβάσεις οποιοδήποτε αρχείο σερβίρει ο συγκεκριμένος server. Δε μπορεί να είναι οπουδήποτε στο filesystem του αλλά κάπου που να μπορεί να διαβάσει ο webserver. Αν όμως θέλεις να διαβάσεις ένα αρχείο που βρίσκεται κάπου αλλού θα έχεις μπελάδες καθώς χρειάζεται digital signatures κλπ...
[Better to understand a little than to misunderstand a lot]
Ευχαριστώ για τις απαντήσεις.Θα ήθελα να ρωτήσω και κάτι άλλο:γράφω το applet σε netbeans ώστε να μην χασω χρόνο για το gui αλλά όταν βάζω το class που μεταγλωττίζω σε html για να το δω με τον explorer δεν μου ανοίγει και μου γράφει στο κάτω μέρος του παραθύρου "applet applet_name not inited",ενώ με το viewer του nb το ανοιγω και το βλέπω κανονικά να δουλεύει.Έχει κανεις ιδέα τι λάθος κάνω?
H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest
Πιθανώς λόγω κάποιου exception στην ασφάλεια δεν ξεκίνησε.
(μάλλον με πρόσβαση σε αρχεία έχει να κάνει, αφού με αυτά παίζει το πρόγραμμά σου)
Για να δείς τι έγινε πήγαινε: Εργαλεία-->Sun java console στον internet explorer σου για να σου βγάλει το stacktrace (για άλλον browser δεν ξέρω ).
Πόσταρέ το εδώ για να πάρεις γνώμες αν δεν βγάζεις άκρη
(μάλλον με πρόσβαση σε αρχεία έχει να κάνει, αφού με αυτά παίζει το πρόγραμμά σου)
Για να δείς τι έγινε πήγαινε: Εργαλεία-->Sun java console στον internet explorer σου για να σου βγάλει το stacktrace (για άλλον browser δεν ξέρω ).
Πόσταρέ το εδώ για να πάρεις γνώμες αν δεν βγάζεις άκρη

I am a nobody, and nobody is perfect; therefore I am perfect.
Ti εννοείς δεν έχω καλέσει την init
Δεν καλείται αυτόματα όταν γράψω
"code="classname.class"" θέλει να γράψω κάτι παραπάνω γιατί σε άλλα έτοιμα applet που έχω κατεβάσει από το web με αυτόν τον κώδικα φορτώνονται.Επίσης στο console μου λέει ότι δεν βρίσκει το class που ήδη υπάρχει στο ίδιο φάκελο.Επίσης το applet είναι χαζό έχει απλώς ένα κουμπί ,΄ήθελα απλώς να δώ αν το ανοίγει ο IE

"code="classname.class"" θέλει να γράψω κάτι παραπάνω γιατί σε άλλα έτοιμα applet που έχω κατεβάσει από το web με αυτόν τον κώδικα φορτώνονται.Επίσης στο console μου λέει ότι δεν βρίσκει το class που ήδη υπάρχει στο ίδιο φάκελο.Επίσης το applet είναι χαζό έχει απλώς ένα κουμπί ,΄ήθελα απλώς να δώ αν το ανοίγει ο IE
H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest
Το σφάλμα και ο κώδικας μου ειναι:
Java Plug-in 1.5.0_07
Using JRE version 1.5.0_07 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Alexakos
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
p: reload proxy configuration
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at myApplet.init(myApplet.java:16)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/netbeans/lib/awtextra/AbsoluteLayout
at myApplet.initComponents(myApplet.java:36)
at myApplet.access$000(myApplet.java:11)
at myApplet$1.run(myApplet.java:18)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
public class myApplet extends java.applet.Applet {
/** Initializes the applet myApplet */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
/** This method is called from within the init() method to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
panel1 = new java.awt.Panel();
button1 = new java.awt.Button();
setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
setBackground(java.awt.Color.white);
setName("alex");
button1.setLabel("button1");
panel1.add(button1);
add(panel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 100, 120, 80));
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private java.awt.Button button1;
private java.awt.Panel panel1;
// End of variables declaration//GEN-END:variables
}
Java Plug-in 1.5.0_07
Using JRE version 1.5.0_07 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Alexakos
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
p: reload proxy configuration
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at myApplet.init(myApplet.java:16)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/netbeans/lib/awtextra/AbsoluteLayout
at myApplet.initComponents(myApplet.java:36)
at myApplet.access$000(myApplet.java:11)
at myApplet$1.run(myApplet.java:18)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
public class myApplet extends java.applet.Applet {
/** Initializes the applet myApplet */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
/** This method is called from within the init() method to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
panel1 = new java.awt.Panel();
button1 = new java.awt.Button();
setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
setBackground(java.awt.Color.white);
setName("alex");
button1.setLabel("button1");
panel1.add(button1);
add(panel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 100, 120, 80));
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private java.awt.Button button1;
private java.awt.Panel panel1;
// End of variables declaration//GEN-END:variables
}
H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest
Δεν βρήκε αυτή την τάξη η jvm σου:
org.netbeans.lib.awtextra.AbsoluteLayout
και αυτό επίσης: org.netbeans.lib.awtextra.AbsoluteConstraints
αν δεν σταμάταγε στο πρώτο.
Δοκίμασε κάποιο άλλο layout καλύτερα, αυτό το Layout που χρησιμοποιείς δεν ξέρω από που το βρήκες αλλά εμένα δεν το έχουν τα netbeans.
org.netbeans.lib.awtextra.AbsoluteLayout
και αυτό επίσης: org.netbeans.lib.awtextra.AbsoluteConstraints
αν δεν σταμάταγε στο πρώτο.
Δοκίμασε κάποιο άλλο layout καλύτερα, αυτό το Layout που χρησιμοποιείς δεν ξέρω από που το βρήκες αλλά εμένα δεν το έχουν τα netbeans.
I am a nobody, and nobody is perfect; therefore I am perfect.
Στο netbeans5 το βρήκα, το χρησιμοποίησα γιατί με αυτό μπορώ να κάνω grag and drop από το pallete τα αντικείμενα swing&awt και να τα κουνάω με το ποντίκι καθορίζοντας την θέση τους πολύ εύκολα πάντως αν κάνω run με το netbeans μου το ανοίγει
H δύναμη της εξαπάτησης και της καταστροφής μπορεί να γοητεύσει μόνο μέτριους και αδύναμους
Τhe lessons we learn from pain are the ones that make us the strongest
Τhe lessons we learn from pain are the ones that make us the strongest
Χμ, τότε ψάξε στο Internet σε ποιό jar αρχείο βρίσκονται αυτές οι τάξεις και κάντες copy-paste στο φάκελο με την εφαρμογή σου και θα παίξειadam98 wrote:Στο netbeans5 το βρήκα, το χρησιμοποίησα γιατί με αυτό μπορώ να κάνω grag and drop από το pallete τα αντικείμενα swing&awt και να τα κουνάω με το ποντίκι καθορίζοντας την θέση τους πολύ εύκολα πάντως αν κάνω run με το netbeans μου το ανοίγει

I am a nobody, and nobody is perfect; therefore I am perfect.