PDA

View Full Version : java tcp/ip


texerasmo
24-06-2005, 09:59
Ciao a tutti,
vorrei fare un applicativo in java,che mi dice quali sono i pc collegati in rete.
Potete darmi una dritta.

kingv
24-06-2005, 10:35
prima di java 1.5 java non aveva alcun supporto per ICMP (il protocollo usato ad esempio dall'utility "ping").

Con l'ultima release un limitato supporto č dato dal metodo isReachable(long timeout) della classe InetAddress.

Se non hai firewall che bloccano ICMP puoi usare quello per testare se un host č online o meno.

71104
24-06-2005, 10:37
e il tcp/ip che c'entra? :mbe:

texerasmo
24-06-2005, 10:47
Quello che cercavo io era di vedere quali ip sono collegati nella mia rete.
esempio come fa il programma Look@LAN.

Intanto senza che apro un altro post volevo chiederti una altra cosa.
Ho realizzato un mini programma che controlla se determinate ip+porta sono su. In caso di sistuazione OFF mi viene invata un email e un sms.

Gli indirizzi ip+porte vengono scritti in un file properties cosi vale anche per la configurazione dell' email e dell' sms.

Ora attraverso NetBeans ho creato il jar ma qunado lo lancio

C:\Java_Progetti\AscoltoPorte\dist>java -jar AscoltoPorte.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingE
xception
at ascoltoporte.TipiHost.TipiHost(TipiHost.java:38)
at ascoltoporte.Main.main(Main.java:32)


ho provato anche ad aggiungerci al comando java opzione cp aggiungento mail.jar e actiovation.jar ma nulla da fare.

Poi se io faccio un jar come fa un utente a moficare i file properties che sono dentro ad un jar?

kingv
24-06-2005, 11:20
ho provato anche ad aggiungerci al comando java opzione cp aggiungento mail.jar e actiovation.jar ma nulla da fare.

Poi se io faccio un jar come fa un utente a moficare i file properties che sono dentro ad un jar?


probabimente hai sbagliato qualcosa nella sintassi con cui cerchi di includere i jar necessari per la tua applicazione.
posta esattamente la riga comando che usi per lanciare l'applicazione.


se includi il file di properties nel jar puoi leggerlo usando ClassLoader.getSystemResourceAsStream(String name), ma non so come fare per scriverlo.

texerasmo
24-06-2005, 12:05
C:\Java_Progetti\AscoltoPorte\dist>java -cp c:\Java_Progetti\jaf-1_0_2-upd2\jaf-
1.0.2\activation.jar:c:\Java_Progetti\javamail-1_3_3-ea\javamail-1.3.3ea\mail.ja
r -jar AscoltoPorte.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingE
xception
at ascoltoporte.TipiHost.TipiHost(TipiHost.java:38)
at ascoltoporte.Main.main(Main.java:32)

In pių mi sono accorti che non riesco a vedere l'immagine nella mia finestra.

kingv
24-06-2005, 13:02
: (duepunti) č il separatore su linux e gli altri unix-like, su windows devi usare il ; (punto e virgola).

java -cp c:\Java_Progetti\jaf-1_0_2-upd2\jaf-1.0.2\activation.jar:c;\Java_Progetti\javamail-1_3_3-ea\javamail-1.3.3ea\mail.ja
r -jar AscoltoPorte.jar

texerasmo
24-06-2005, 13:37
C:\Java_Progetti\AscoltoPorte\dist>java -cp c:\Java_Progetti\jaf-1_0_2-upd2\jaf-
1.0.2\activation.jar;c:\Java_Progetti\javamail-1_3_3-ea\javamail-1.3.3ea\mail.ja
r -jar AscoltoPorte.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingE
xception
at ascoltoporte.TipiHost.TipiHost(TipiHost.java:38)
at ascoltoporte.Main.main(Main.java:32)

ho provato acnhe cosė

kingv
24-06-2005, 14:09
stai sbagliando a scrivere uno di quei path, prova a controllare.

texerasmo
24-06-2005, 14:23
java -cp "c:/activation.jar;c:/mail.jar" -jar AscoltoPorte.jar

ho procato anche cosė nulla da fare forse č fatto male il jar?

kingv
24-06-2005, 15:17
ho procato anche cosė nulla da fare forse č fatto male il jar?



prova con un:

jar tvf c:\percorso_corretto\mail.jar | find "MessagingException"

se non ti restituisce nulla il jar non č corretto.

texerasmo
24-06-2005, 17:12
C:\Ant>jar tvf c:\mail.jar | find "MessagingException"
1456 Wed Jun 08 00:00:20 CEST 2005 javax/mail/MessagingException.class


mi restituisce questo

kingv
24-06-2005, 18:34
ho capito :doh:


dalla documentazione del JDK, riferendosi all'opzione -jar:
When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored.

quindi lancialo con

java -cp ".\AscoltoPorte.jar;c:\activation.jar;c:\mail.jar" nome_della_classe_col_main

texerasmo
27-06-2005, 10:36
grazie per la collaborazione, funziona :)

Sei un mito.

C:\>java -cp ".\AscoltoPorte.jar;c:\activation.jar;c:\mail.jar" ascoltoporte.Mai
n