• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
August 01, 2025, 17:31:16 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
August 01, 2025, 17:31:16 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Νέα Δημοκρατία (and Co. I...
by Katarameno
[Today at 15:13:09]

[Τομέας Ηλεκτρονικής] Μαθ...
by PolarBear
[Today at 15:05:18]

Πρόγραμμα Σπουδών Ακαδημα...
by PolarBear
[Today at 15:03:05]

[Τομέας Ενέργειας] Μαθήμα...
by chatzikys
[Today at 13:53:11]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by MajorTom
[Today at 11:34:38]

Aναζωπύρωση των εχθροπραξ...
by Katarameno
[July 31, 2025, 21:15:48 pm]

Καμμένα...!!
by Godat
[July 31, 2025, 21:07:58 pm]

Οι μπράβοι του πρύτανη
by okan
[July 31, 2025, 20:32:45 pm]

[ΑΝΤΙΣΤΑΣΗ] Ανακοίνωση γι...
by Katarameno
[July 31, 2025, 20:31:30 pm]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[July 31, 2025, 15:33:28 pm]

ΤΗΜΜΥ-Σκάκι
by L
[July 31, 2025, 13:24:56 pm]

Τι ακούτε αυτήν τη στιγμή...
by Giopan
[July 30, 2025, 17:07:32 pm]

Αποτελέσματα Εξεταστικής ...
by Mr Watson
[July 30, 2025, 14:19:11 pm]

Τα παράσιτα ανάμεσά μας
by Katarameno
[July 30, 2025, 13:47:28 pm]

Ρώτα κάτι τον επόμενο
by Giopan
[July 29, 2025, 16:04:23 pm]

Πότε θα βγει το μάθημα; -...
by chatzikys
[July 29, 2025, 13:52:51 pm]

[ΣΗΕ ΙΙ] Γενικές απορίες ...
by Διάλεξις
[July 29, 2025, 01:00:00 am]

Η άχρηστη πληροφορία της ...
by Katarameno
[July 28, 2025, 23:50:00 pm]

Αναβαθμολόγιση??
by Katarameno
[July 28, 2025, 23:20:48 pm]

Ίδρυση Ιδιωτικών Πανεπιστ...
by Katarameno
[July 28, 2025, 20:59:44 pm]
Στατιστικά
Members
Total Members: 9987
Latest: Kwtininatheod
Stats
Total Posts: 1427624
Total Topics: 31739
Online Today: 147
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 24
Guests: 90
Total: 114
filkilkis
maria_sf8
apostchris
stavros0201
vatsia
Anita
AcDimitri
femanak
iliaspapam
rigas_s
prigians
Hyperlaz02
Saint_GR
zaroumaria
jimalexoud
Lygkouras_c
Giannis Masterio
dimitrisblioumis
astakos1
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Επίσημη ενημέρωση για Αντιστοίχηση Μαθημάτων ΝΠΣ με ΠΠΣ και η συζήτηση στο forum.
THMMY.gr > Forum > Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα > Περί Υπολογιστών... > Software > Προγραμματισμός (C, VB, Delphi, PHP, ASP...) > Java (Moderators: chatzikys, PolarBear) > Ερώτηση σε JAVA
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 Go Down Print
Author Topic: Ερώτηση σε JAVA  (Read 3386 times)
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Ερώτηση σε JAVA
« on: September 10, 2013, 13:51:58 pm »

Hi!!!! Έχω φτιάξει ένα πρόγραμμα σε JAVA και σε κάποιο σημείο αυτό το πρόγραμμα ανοίγει ένα άλλο πρόγραμμα .exe. Στη συνέχεια θέλω να δουλεύω σε εκείνο το πρόγραμμα και μετά αυτό που φτιάχνω στο πρόγραμμα θέλω να ανοίγει στη JAVA αυτόματα. Μπορώ να το φτιάξω έτσι ώστε να αποθηκέυω το αρχείο και μετά να το καλώ από το πρόγραμμα της JAVA, αλλά γίνεται να γίνει κάπως πιο εύκολα; Αυτό που εννοώ είναι αν μπορώ να ορίσω μέσα από το JAVA πρόγραμμα που θα αποθηκεύεται και πως θα ονομάζεται το αρχείο του άλλου προγράμματος. Θέλω να γίνει με αυτό τον τρόπο γιατί θα το ξαναχρησιμοποιήσω μέσα στο JAVA πρόγραμμα. Λίγο μπέρδεμα εεε;;;

Ευχαριστώ!!!!
Logged
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: Ερώτηση σε JAVA
« Reply #1 on: September 10, 2013, 14:04:29 pm »

Μια λύση είναι να χρησιμοποιήσεις τις εισόδους/εξόδους (stdin/stdout) μεταξύ των processes (java <-> exe) και να στέλνεις εντολές μεταξύ τους. Αυτό θα χρειαστεί να έχεις ξεχωριστά threads (και στο java process αλλά και στο exe process) για να ακούς την είσοδο για εντολές.

Για να ξεκινήσεις δες εδω http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html
Logged
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: Ερώτηση σε JAVA
« Reply #2 on: September 10, 2013, 15:09:43 pm »

Ευχαριστώ, αλλά μάλλον περισσότερο μπερδεύτηκα. Μπορείς να μου το κάνεις λίγο πιο συγκεκριμένο; Να σου πω για παράδειγμα εγώ έχω γραμμένο αυτό τον κώδικα και ανοίγω το PLCEdit

Code:
	public static void main(String[] args) {
System.out.println("Hello, World");
try {
System.out.println("Opening PLCEdit");
Runtime runTime = Runtime.getRuntime();
Process process = runTime.exec("C:\\Program Files\\PLCEdit\\PLCEdit.exe");
}
catch (IOException e) {
e.printStackTrace();
}

}

Πως μπορώ τώρα να ανομάσω και να αποθηκεύση το αρχείο απο το PLCEdit μέσα από τη JAVA;
Logged
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: Ερώτηση σε JAVA
« Reply #3 on: September 10, 2013, 15:27:17 pm »

Υπέθεσα ότι έχεις τον κώδικα από το exe   Cheesy
Αν τον έχεις το βλέπουμε πως γίνεται. Αλλιώς, έχεις τις εξής 2 επιλογές νομίζω:
  • Δες αν υπάρχει κάποια command line παράμετρος που να σε βοηθάει.
  • Μπορείς απο το java process κανεις monitoring για αλλαγες κάποιο directory και να λαμβάνεις events. Οπότε ορίζεις ενα συγκεκριμενο directory που αποθηκευεις τα αρχεια και τα επεξεργάζεσαι μετα από την java. Δες εδώ:
    http://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html
    http://java.dzone.com/articles/using-java-7s-watchservice
Logged
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: Ερώτηση σε JAVA
« Reply #4 on: September 17, 2013, 17:37:24 pm »

Ευχαριστώ τον antares για τη βοήθειά του, ήταν πολύ χρήσιμη. Για να μην ανοίξω νέο topic θα κάνω ακόμα μια ερώτηση. Έχω τον παρακάτω κώδικα
Code:
package test;

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.List;


public class test3 {

public static void main(String[] args) {
System.out.println("Hello, World");
new File("C:\\Users\\V\\Documents\\diplwmatiki\\temp").mkdir();
System.out.println("To proswrino arxeio dimiourgithike");
try {
System.out.println("Opening notepad");
Runtime runTime = Runtime.getRuntime();
Process process = runTime.exec("C:\\Windows\\System32\\notepad.exe");
}
catch (IOException e) {
e.printStackTrace();
}

//define a folder root
        Path myDir = Paths.get("C:\\Users\\V\\Documents\\diplwmatiki\\temp");       

        try {
           WatchService watcher = myDir.getFileSystem().newWatchService();
           myDir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
           StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);

           WatchKey watckKey = watcher.take();

           List<WatchEvent<?>> events = watckKey.pollEvents();
           for (WatchEvent event : events) {
                if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
                    System.out.println("Created: " + event.context().toString());
                }
               
                if (event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) {
                    System.out.println("Modify: " + event.context().toString());
                }
            }
                     
           
        }
        catch (Exception e) {
        e.printStackTrace();
            }
     
       

}
}
Αυτός ο κώδικα ανοίγει το σημειωματάριο και εκεί αφού γράψουμε κάτι αποθηκεύουμε στο dokimi.txt μέσα στο φάκελο temp. Η ερώτηση είναι πως μπορούμε να κλείσουμε χρησιμοποιώντας τη JAVA το αρχείο dokimi.txt; Δοκίμασα να κάνω process.destroy();
αλλά μου βγάζει σφάλμα. Έχει κανείς καμιά ιδέα;;; Ευχαριστώ εκ των προτέρων
Logged
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: Ερώτηση σε JAVA
« Reply #5 on: September 17, 2013, 20:55:41 pm »

Τι λάθος σου βγάζει?
Logged
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: Ερώτηση σε JAVA
« Reply #6 on: September 18, 2013, 00:49:26 am »

Όταν βάζω σκέτο process.destroy(); μου βγάζει process cannot be resolved ενώ όταν βάλω
Process process.destroy(); μου βγάζει:
Multiple markers at this line:
-Syntax error on token ".",; expected
-The method destroy() is undefined for the type test3

Το destroy το βάζω αμέσως μετά το for loop
Logged
Δικαστής Μύρτιλος
Καταξιωμένος/Καταξιωμένη
***
Posts: 190



View Profile
Re: Ερώτηση σε JAVA
« Reply #7 on: September 18, 2013, 01:21:24 am »

Το process το έχεις ορίσει μέσα στο try άρα είναι ορισμένο μόνο για εκεί. Δοκίμασε να το ορίσεις απ'έξω.
Logged

Τι είναι η ζωή; Ένα ημίτονο . . .
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: Ερώτηση σε JAVA
« Reply #8 on: September 18, 2013, 10:01:53 am »

Quote from: Δικαστής Μύρτιλος on September 18, 2013, 01:21:24 am
Το process το έχεις ορίσει μέσα στο try άρα είναι ορισμένο μόνο για εκεί. Δοκίμασε να το ορίσεις απ'έξω.

Ναι λειτουργεί έτσι. Σ' ευχαριστώ!
Logged
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: Ερώτηση σε JAVA
« Reply #9 on: September 18, 2013, 10:03:14 am »

Έχεις συντακτικό θέμα νομίζω σχετικά με το που καλείς το process.destroy();

Κάπως έτσι προσπαθησε να βάλεις τον κωδικά σου:

Code:
package test;

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.List;


public class test3 {

public static void main(String[] args) {
System.out.println("Hello, World");
                Process process = null;
new File("C:\\Users\\V\\Documents\\diplwmatiki\\temp").mkdir();
System.out.println("To proswrino arxeio dimiourgithike");
try {
System.out.println("Opening notepad");
Runtime runTime = Runtime.getRuntime();
process = runTime.exec("C:\\Windows\\System32\\notepad.exe");
}
catch (IOException e) {
e.printStackTrace();
}

//define a folder root
        Path myDir = Paths.get("C:\\Users\\V\\Documents\\diplwmatiki\\temp");       

        try {
           WatchService watcher = myDir.getFileSystem().newWatchService();
           myDir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
           StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);

           WatchKey watckKey = watcher.take();

           List<WatchEvent<?>> events = watckKey.pollEvents();
           for (WatchEvent event : events) {
                if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
                    System.out.println("Created: " + event.context().toString());
                }
               
                if (event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) {
                    System.out.println("Modify: " + event.context().toString());
                }
            }
                     
            if (process != null) {
                process.destroy();
            }

        }
        catch (Exception e) {
        e.printStackTrace();
            }
     
       

}
}
Logged
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: Ερώτηση σε JAVA
« Reply #10 on: September 20, 2013, 22:14:10 pm »

Ακόμη μία ερώτηση, μάλλον τα έχω παίξει seestars seestars Έχω τον παρακάτω κώδικα για να ανοίγω ένα xml αρχείο σε JAVA
Code:
 try {
   

File fXmlFile = new File("test.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
    }
   
    catch (Exception e) {
e.printStackTrace();
    }]

το οποίο δίνει σαν αποτέλεσμα μια λογική έκφραση: a&&b. Τα a,b είναι δύο αρχεία xml και αυτά. Η ερώτηση είναι γίνεται να φτιάξουμε ένα καινούργιο αρχείο xml χρησιμοποιώντας τα αρχεία a και b, τα οποία διαβάζουμε επίσης, αλλά να μην τα κάνουμε απλά merge, αλλά να έχουμε τη λογική πράξη AND;
Logged
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: Ερώτηση σε JAVA
« Reply #11 on: September 21, 2013, 15:43:10 pm »

Πολύ ασαφής η ερώτηση σου... για να απαντηθεί.

Τι σημαίνει να κάνεις AND μεταξύ 2 xml αρχείων;
Αν έχει να κάνει με την δομή των αρχείων αυτών ίσως θα έπρεπε να μας δείξεις και την δομή τους για να έχει νόημα και ο κώδικας που δείχνεις (αλλά μετά πάμε σε επίλυση προβλήματος σε λογικό επίπεδο και όχι απλά "έχω θέμα με την Java").
Logged
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: Ερώτηση σε JAVA
« Reply #12 on: September 30, 2013, 17:21:10 pm »

Quote from: antares on September 21, 2013, 15:43:10 pm
Πολύ ασαφής η ερώτηση σου... για να απαντηθεί.

Τι σημαίνει να κάνεις AND μεταξύ 2 xml αρχείων;
Αν έχει να κάνει με την δομή των αρχείων αυτών ίσως θα έπρεπε να μας δείξεις και την δομή τους για να έχει νόημα και ο κώδικας που δείχνεις (αλλά μετά πάμε σε επίλυση προβλήματος σε λογικό επίπεδο και όχι απλά "έχω θέμα με την Java").


Ναι το πρόβλημα που είχα ήταν σε λογικό επίπεδο, δεν είχε σχέση με τη java. Τώρα έχω και μια άλλη ερώτηση. Έχω τον παρακάτω κώδικα
Code:
 try {
        //Reading an XML file, created above
    File fXmlFile = new File("C:\\Users\\V\\Documents\\diplwmatiki\\temp\\dokimi.xml");
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(fXmlFile);
   
    //optional, but recommended
    //read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
    doc.getDocumentElement().normalize();
   
    //Printing the attributes of the XML file
    System.out.println("\nRoot element :" + doc.getDocumentElement().getNodeName());
   
    NodeList nList = doc.getElementsByTagName("file");
   
    System.out.println("----------------------------");
   
    for (int temp = 0; temp < nList.getLength(); temp++) {
   
    Node nNode = nList.item(temp);
   
    System.out.println("\nCurrent Element :" + nNode.getNodeName());
   
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
   
    Element eElement = (Element) nNode;
   
    System.out.println("File id : " + eElement.getAttribute("id"));
    System.out.println("File_name : " + eElement.getElementsByTagName("name").item(0).getTextContent());
    System.out.println("Katali3i : " + eElement.getElementsByTagName("katali3i").item(0).getTextContent());
   
    }
    try{
   
   
    Element eElement = (Element) nNode;
    ArrayList<String> File_name = new ArrayList<String>();
    File_name.add(eElement.getElementsByTagName("name").item(0).getTextContent());
    System.out.println(File_name);
   
   
    }
    catch (Exception e) {
        e.printStackTrace();
        }
   
    }
   
   
        }
       
        catch (Exception e) {
    e.printStackTrace();
        }
       
        //Creating an list having all files of a directory
       
File folder = new File("C:\\Users\\V\\Documents\\diplwmatiki\\SFBs");
ArrayList<File> files = new ArrayList<File>(Arrays.asList(folder.listFiles()));
 
for (int i = 0; i < folder.length(); i++)
{

System.out.println("\n" +files);
}
files.retainAll(File_name);

και δεν λειτουργεί η τελευταία εντολή. Ξέρω ότι το πρόβλημα είναι ότι συγκρίνω διαφορετικούς τύπους arraylist. Ο ένας τύπος είναι string και ο δεύτερος είναι file. Πώς μπορούμε να το κάνουμε έτσι ώστε να γίνει η σύγκριση, δηλαδή εννοώ ότι θέλω από τα στοιχεία που είναι στη λίστα με τα string να βρίσκω τα αρχεία που έχουν το ίδιο όνομα και να τα βάζω σε μια άλλη λίστα
Logged
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: Ερώτηση σε JAVA
« Reply #13 on: September 30, 2013, 19:01:11 pm »

Ναι έχεις πολλές επιλογές για να το επιτυχείς, κάποιες μπορεί να είναι π.χ.:

1. Χρησιμοποιείς την http://docs.oracle.com/javase/7/docs/api/java/io/File.html#list() για να σου γυρίσει String array και να αφήσεις τον υπόλοιπον κώδικα ως έχει.

2. Αν θέλεις File array χρησιμοποιείς την http://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles(java.io.FilenameFilter) και υλοποιείς το φίλτρο.

3. Κάνεις το φίλτρο "με το χέρι", δηλ. loop στα files και κοιτάς κάθε όνομα αν το κρατάς ή οχι, παρόμοιο με το 2 δηλ.
Logged
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: Ερώτηση σε JAVA
« Reply #14 on: September 30, 2013, 20:57:39 pm »

Οκ ευχαριστώ πολύ!!! Κάτι τέτοιο ήθελα. Σόρρυ και για τις συνεχείς ερωτήσεις αλλά δεν έχω και μεγάλη εμπειρία με την java
Logged
Pages: [1] 2 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...