Salve a tutti:
Compliato il codice di java con l'ide di eclipse, come carico il programma manualmente?
Con java nomeprogramma non parte...
Salve a tutti:
Compliato il codice di java con l'ide di eclipse, come carico il programma manualmente?
Con java nomeprogramma non parte...
jabjoint
Senza sapere esattamente quale è il tuo contesto, è praticamente impossibile dire cosa fare ...
Hai i tuoi file .class "sfusi" sul file-system? Le classi sono in uno/più package specifici o tutte nel package di "default"? Hai impacchettato le tue classi in un jar? Il jar ha il manifest con il Main-Class specificato o no? La tua applicazione richiede altre "dipendenze" (jar esterni)? Se sì e hai fatto il jar, il manifest ha anche il Class-Path specificato o no?
C'è anche di mezzo il module-system (Java 9+)? (presumo di no, quindi solo concetti del "classpath" classico)
E inoltre: il progetto in Eclipse è un suo progetto "nativo" (classico "Java Project") o è basato su Maven o Gradle?
Ultima modifica di andbin; 02-10-2022 a 21:45
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Si sono due package all'interno della cartella src.
Un package è l'expression, per svolgere le espessioni matematiche che ora funziona benino.
L'altro è il draw, per rappresentare i grafici.
Come mi hanno insegnato fin a d'ora gli ho messi entrambi nel src.
Dentro i package ci sono le relative classi.
Quando vado nella cartella e provo a caricare Draw.class tramite java Draw, non parte mi da errore.
E' un semplcie nuovo progetto.
Ma da eclipse parte.
Ultima modifica di jabjoint; 02-10-2022 a 22:21
jabjoint
Se in Eclipse hai il classico Java Project, i .class vengono "ribaltati" nella cartella "bin", con rigorosamente la struttura delle cartelle che "riflette" i package.
Quindi se lo scenario fosse es. (uso \ in termini Windows):
nome-progetto\bin\packageA\ClasseMain.class
nome-progetto\bin\packageB\AltraClasse.class
allora basta posizionarsi come directory "corrente" nella cartella bin (NON packageA!)
cd blabla\nome-progetto\bin
e eseguire:
java -cp . packageA.ClasseMain
scritto esattamente così, con il nome qualificato della classe e SENZA .class finale
Il -cp con il punto indica che "in classpath" c'è solo la directory corrente (è già così per default ma in questo modo è esplicito nel caso ci sia altro nella variabile d'ambiente CLASSPATH).
La directory che fa da "base" ai package DEVE essere in classpath.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Perfetto grazie, è partito subito!
jabjoint