Προς το περιεχόμενο

Pos tha treksei epitelous i rimada java(jarfiles)


Linuxmaniac

Προτεινόμενες αναρτήσεις

Δημοσ.

eleos me auta ta classpaths.ma eleos diladi.

kai ipotithetai ta jar arxeia exoun mesa tous ta classpaths kai loipes mpourdes.

programmatizo sto netbans,mesa apo to run to programma trexei kanonika,grafiko perivallon,sindesi me vasi ktl ktl.

ipotithetai ston katalogo dist tou project sou,ftiaxnei etoimo to jar pou exei ensomatomena (kai kala!) ta classpaths.

to atimo omos apo command prompt den trexei.mou anoigei to grafiko perivallon alla os ekei,meta exceptions class not found ti gnosta.

 

ti na kano,gnorizei kanenas allos ermos?tin exo sixathei pragmatika,mia zoi oi idies mpourdes.

kai peite vre aderfia mou dosei kapoios lisi kai ftiakso classpaths ktl ktl,thelo na steilo se enan,duo,deka xiliades atoma esto to programmataki mou.tha tous stelno kai documentation pos na ftiaksoun ta classpaths?

makari kapoios na mou dosei olokliromeni lisi pos tha ensomatothoun kai oi extra vivliothikes pou mporei na xrisimopoio,se poio fakelo pane,pos sto classpath ktl.set classpath= apla den einai arketo

Δημοσ.

Μπορώ να σε βοηθήσω αν γίνεις πιο συγκεκριμένος!

Δηλ:Στείλε λίγο κώδικα και πες μας ακριβώς που είναι τα libraries που θέλεις να έχεις πρόσβαση!

Δημοσ.

koita prama pou saleuei fresko fresko..!

 

import com.hp.hpl.jena.ontology.OntModelSpec;

 

import org.mindswap.pellet.jena.PelletReasoner;

import org.mindswap.pellet.jena.*;

import org.mindswap.pellet.jena.PelletInfGraph;

 

import java.util.Properties;

import java.util.Iterator;

 

import com.hp.hpl.jena.rdql.*;

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

 

import com.hp.hpl.jena.rdf.model.Model;

import com.hp.hpl.jena.rdf.model.InfModel;

import com.hp.hpl.jena.rdf.model.ModelFactory;

import com.hp.hpl.jena.rdf.model.Resource;

 

import com.hp.hpl.jena.reasoner.ReasonerRegistry;

import com.hp.hpl.jena.reasoner.Reasoner;

 

import com.hp.hpl.jena.vocabulary.RDF;

 

import com.hp.hpl.jena.rdql.Query;

import com.hp.hpl.jena.rdql.QueryEngine;

import com.hp.hpl.jena.rdql.ResultBinding;

import com.hp.hpl.jena.rdql.QueryExecution;

import com.hp.hpl.jena.rdql.QueryResults;

import com.hp.hpl.jena.rdql.ResultBinding.*;

import javax.swing.JApplet;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

 

koita imports pou exei.ki auto einai mono ena apo ta arxeia giati parakato kalei alles klaseis kai me to grafiko perivallon.

as poume esi ti prepei na kano gia na mporeseis na to trekseis.ego ston ipologisti mou mono meso netbeans mporo na to trekso pou mporo na tou oriso ta classpaths apo to interface tou

Δημοσ.

Ωραία...τα import της φάσης com.κτλ προφανώς βρίσκονται σε εξωτερικές βιβλιοθήκες τις οποίες χρησιμοποιείς!Αν θέλεις να περιέχονται μέσα στο .jar αρχείο που δημιουργείς νομίζω πως καλύτερη λύση είναι να τα κάνεις extract και να πάρεις τους φακέλους com.κτλ και να τους βάλεις στον φάκελο classes που δημιουργεί το netbeans έτσι ώστε να τις ενσωματώσει στο jar αρχείο σου!Είναι λάθος (αν το έχεις κάνει) να βάζεις ένα jar αρχείο μέσα σε ένα άλλο jar αρχείο!Θυμίζου ότι όταν τρέχεις κάτι από το netbeans δεν τρέχει το jar που δημιουργεί αλλά τα .class που έχεις!Οπότε δεν δημιουργείται το πρόβλημα που ανέφερα!

Άλλη λύση είναι τα jar αρχεία που περιέχουν τις βιβλιοθήκες να τα έχεις στον ίδιο φάκελο με το δικό σου jar!

Αν σε ενδιαφέρει η δεύτερη λύση δεν είμαι σίγουρος ότι θα δουλέψει τόσο απλά αλλά πρέπει να το κοιτάξω λίγο παραπάνω για να θυμηθώ τι κάνεις σε αυτήν την περίπτωση!

Πάντως αν τα κάνεις extract σίγουρα θα δουλέψει!Εγώ συνήθως έτσι κάνω!;)

Δημοσ.

Το κακό με την λύση του extract είναι ότι πιθανώς θα μεγαλώσει το αρχείο σου χωρίς λόγο και αυτό είναι πρόβλημα όταν στοχεύεις σε δικτυακές εφαρμογές που πρέπει να προσέξεις και το χαμηλό bandwidth. Η καλύτερη λύση για μένα είναι να τα βάλεις σε κάποιο φάκελο Lib ας πούμε και να προσθέσεις ένα batch file που θα περιέχει μέσα την εντολή εκτέλεσης

 

eg: java -jar myJar.jar -classpath .\lib\importerJar1.jar;.\lib\importedJar2.jar etc

Δημοσ.

Χμμμμ δεν θα μεγαλώσει καθόλου το αρχείο σου γιατί πάλι μέσα στο jar θα είναι και θα το συμπιέσει πάλι το ίδιο!Αν βάλεις το jar μέσα στο jar θα το συμπιέσει παραπάνω?

Δημοσ.

dokimasa ti lisi tou Ros_Original pou mou fanike oti kapos etsi prepei na ginetai alla den egine kati.

pos mporo na do to classpath?otan patao path mou to tiponei kai vlepo

me set classpath = mpourdes kati ginetai alla meta otan patao classpath den eprepe na to vgazei?'classpath' is not recognized... ktl vgazei

 

episis Dikemou ti ennoeis me to sximataki sou?den to epiasa

Επισκέπτης
Δημοσ.
ti na kano,gnorizei kanenas allos ermos?tin exo sixathei pragmatika,mia zoi oi idies mpourdes.

 

H gnwmh mou einai oti to kalaytero pou exeis na kaneis einai na allakseis glwssa programmatismou ka8ws h java den einai gia esena.

Δημοσ.

Αν χρησιμοποιείς μόνον Java2 classes τότε τα πάντα είναι κλασικά στο classpath. Αν όχι, αυτό που έχεις να κάνεις είναι μαζί με το jar να έχεις και μερικά batch αρχεία (2 - ένα για Windows και ένα για Unix και un*x-like).

 

Αν έχεις πολλά jar αρχεία ή κάνεις την λύση extract και μετά compress όλα τα .class αρχεία σε ένα νέο jar (το μέγεθος θα είναι ελαφρώς μικρότερο) ή απλά στα batch αρχεία θέτεις στο classpath τα αντίστοιχα jar με τις βιβλιοθήκες.

 

Ναι, γίνεται κατά την εκκίνηση να γίνεται αναγνώριση όλων των jar και .class καθώς και on-the-fly αλλαγή του classpath μόλις κατεβάζεις ένα νέο jar αρχείο. Αλλά δεν μπορείς να φανταστείς πόσα προβλήματα μπορεί να δημιουργήσει.

 

@DiAvOl: not a good piece of advice.

Δημοσ.
H gnwmh mou einai oti to kalaytero pou exeis na kaneis einai na allakseis glwssa programmatismou ka8ws h java den einai gia esena.

 

XAXAXA....Αλλά νομίζω ότι η συμβουλή σου δεν είναι πολύ σοβαρή καθώς αν παρατάγαμε στην παραμικρή δυσκολία τις γλώσσες τελικά κανένας μας δεν θα μάθαινε ποτέ καμία!

Πάντως γέλασα με την απάντησή σου....:-D

Δημοσ.

 

episis Dikemou ti ennoeis me to sximataki sou?den to epiasa

 

Θα φτιάξεις τα directories μ' αυτόν τον τρόπο και θα τα χώσεις σε ένα jar μαζί με το manifest. Αν το JRE είναι εγκατεστημένο, τότε με διπλό κλικ στο jar σου θα τρέχει η εφαρμογή...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...