Zum Inhalt springen

MikeVader

Mitglieder
  • Gesamte Inhalte

    35
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von MikeVader

  1. Wie speedi bereits erwähnt hat macht, macht es nicht wirklich Sinn wenn Java eine solche Plattform spezifische Funktionalität anbieten würde. Ich habe es in einem früheren Projekt einfach durchs Parsen vom "net use" Output gelöst. Ist zwar etwas Handgestrickt aber für einfachere/kleinere Applikationen durchaus sinnvoll. Wenn es jedoch stabil und sicher laufen soll, ist der Weg über JNI sicher besser geeignet! P.S: Für viele andere Plattform nahe Funktionen gibt es gute Projekte für die Integration wie z.B. jdic.
  2. Danke für die Infos. Dass man Einarbeitungszeit braucht ist selbstverständlich. Werden sehr wahrscheinlich nun mit InfraRED fahren ausser der TPL will das Risiko eingehen mit tptp von Eclipse. Sieht zwar sehr cool aus aber eben ... das muss ja noch nicht heissen, dass es im konkreten Fall wirklich funktioniert.
  3. Dass es viele gute Profiler gibt ist mir klar: jRat, hprof, tptp (Eclipse Project), NetBeans etc etc Nur ist es in einer n-Tier Architektur nicht ein Aufwand von ein paar Stunden um das ganze Projekt damit auszurüsten. Deshalb sollte man von Anfang an wissen was man einsetzt oder einsetzen sollte sonst gehen die Kosten schnell man unnötig rauf. Wie gesagt es geht vor allem um Antwortzeiten und Aufrufreihenfolge und weniger um Speicherverbrauch oder andere Messdaten. Unser Problem ist, dass Aufrufe viel zu lange dauern, nach unserem Empfinden, und wir natürlich raus finden wollen, wo genau die Zeit verloren geht. Dank simplen Oracletraces konnten wir schon mal die Datenbank selbst ausschliessen. Aber das hinterlässt immer noch ein riesiges Gebiet wo die Performance flöten geht. Ich hoffte hier auf Leute mit Erfahrung in dem Gebiet zu treffen.
  4. Hat hier niemand Interesse an Performance-Tuning oder Ahnung davon? Oder bin ich in einem komplett falschen Forum dafür?
  5. Ich hätte mal eine Frage ob hier jemand Erfahrungen hat mit Performance-Messungen mit J2EE Services bzw. um Performance-Messungen zwischen Client und Server zu machen. Unsere Umgebung sieht folgendermassen aus: Client: Eclipse RCP Service: J2EE, jedoch ausschliesslich Stateless Session Beans Persistence: Toplink mit Oracle DB (Obwohl da haben wir keine Probleme) Wir möchten nun die Performance von einzelnen Aktionen messen, also wo wurde was aufgerufen und wo wurde am meisten Zeit verbraucht. Es gibt ja vielversprechende Frameworks wie jRat oder tptp von Eclipse jedoch hat hier niemand Erfahrung damit und ich weiss jetzt nicht wirklich welches der Frameworks sich nun am besten für unser Umfeld eignet. Danke schon mal für die Hilfe. lg Michael
  6. Perfekt. Mein Gott eigentlich so simpel. Weshalb verlernt man nur so schnell Bool. Alg. nach dem Studium? :-) Vielen für die Hilfe. P.S.: Ich nehme aber an du meintest: K1 und nicht K1' ... !diff) or (K1 and diff) da K1' ja der alte Kalender (ohne Änderungen) wär. Allerdings macht es mehr Sinn wenn man die K1 und K1' vertauscht damit es gängigen Mahte Terminologien entspricht.
  7. Preamble: Unser Projekt arbeitet mit Kalendern die als Byte Array mit einem Startdatum implementiert sind. Dabei repräsentiert jedes Byte eine Woche. Die 1 & 0en sagen aus ob das Objekt an dem der Kalender hängt an diesem Tag aktiv ist oder nicht. Problem: Ein bestimmter Typ von Objekt (:A) hat nun zwei Kalender (K1 und K2). Alle Änderungen in K1 sollen auch in K2 übernommen werden wobei die beiden Kalender unterschiedlich aussehen können. Meine erste Idee war das typische vorgehen mit XOR-Operationen, jedoch kann dies zum falschen Resultat in K2 führen. Mein Lösungsansatz: Ich habe zwar eine Lösung, jedoch halte ich sie für sehr unperformant, was nicht gerade ein gutes Zeichen ist und ich hoffe ich war einfach zu dämlich eine bessere Lösung zu finden. Also: diff := K1 xor K1' for each bit in diff if bit=1 then K2 := K1 K1 steht für den neuen (aktuellen) Kalender und K1' für den alten
  8. Das kann kaum eine Loesung sein, da man gerade auch aus solchen Gruenden ein Framework wie Eclipse-RCP einsetzt. Zudem ist das Projekt definitiv zu gross um hier noch nachtraeglich solche spielchen zu machen. Ich habe entdeckt, dass es wie fuer Eclipse selber auch Language Packs fuer RCP gibt, leider habe ich keine Dokumentation oder Howto gefunden wie man diese fuer ein Projekt verwendet. Mein Problem liegt also nun darin wie ich diese in mein bestehendes Projekt einbinde.
  9. Ich habe eine Applikation welche mit Eclipse RCP entwickelt wurde. Die Applikation sollte Multilingual sein (und ist sie bis jetzt auch mehr oder weniger). Nun habe ich aber ein Problem mit den Default Messages von RCP selber, z.B. bei den Menü Einträgen oder bei Fehlermeldungen oder Hinweisen wie wenn man nen ungesicherten Editor schliessen will. Ich habe leider im Netz nichts gutes gefunden, nur wie ich der Eclipse IDE andere Sprachen beibringe, jedoch ist das ein anderes Thema. Hat hier jemand Erfahrung mit RCP und verschiedenen Sprachen?
  10. Es gibt die Möglichkeit mit Channels zu arbeiten. Das ist u.a. eine Socket-Variante die mit java.nio gekommen ist (non-blocking I/O). Dort gibt es zwar auch kein Timeout, aber man liesst nur gerade die Daten vom Socket die gerade vorhanden sind und wird nicht blockiert (auch keine Daten sind ein gültiges Resultat und bedeutet nicht, dass die Verbindung beendet ist). Dies bedeutet jedoch, dass man selber für das korrekte zusammenhängen der Daten verantwortlich ist.
  11. Also der Vorteil von inneren Klassen besteht ja darin, dass diese Zugriff auf Methoden und Felder der äusseren Klasse haben ohne eine explizite Referenz auf die äussere Klasse zu haben. Dies wird dadurch möglich, dass eine innere Klasse immer mit einer Instanz der äusseren Klasse assoziiert ist. Normalerweise kann man ja ohne Problem auf ein Feld oder eine Methode der äusseren Klasse zugreiffen. Mein Problem liegt nun daran, dass die Methode die ich brauche in beiden Klassen implementiert wird (mit gleicher Signatur). Also wenn ich diese Methode aufrufe wird wegen dem default scope diejenige der inneren Klasse genommen. Ich gebe dir recht, dass normalerweise allgemein nested Klassen unschön sind und das ist auch hier sicherlich der Fall. Nur habe ich mit legacy Code zu tun und somit nicht eine grosse Wahl das Design zu ändern :-( Das mit der Referenz übergeben würde grundsätzlich Funktionieren, aber ich übergebe dann etwas, dass eigentlich schon vorhanden ist. Die Instanz der inneren Klasse kennt ja ihre assoziierte äussere Klasse.
  12. Ich habe folgendes Problem: Ich habe eine non-static inner class welche das selbe Interface implementiert wie die outer class. Wie kann ich jetzt von der innerclass auf eine Methode dieses Interfaces zugreiffen? bzw wie bekomme ich eine expliziete Referenz der Outerclass von der Innerclass?
  13. MikeVader

    Verifikation

    Ich kann dir leider nicht weiterhelfen bei denem Problem, interessiere mich aber fuer dieses Gebiet und waere dankbar wenn jemand gute Quellen oder Buecher zu diesem Thema angeben koennte. War mir bisher nicht bewusst, dass es formale Beweise fuer Algrorithmen gibt und moechte mich in dieses Thema einarbeiten. Kannte bis jetzt nur formale Beweise fuer die Komplexitaet bzw Aufwand von Algroithmen. P.S. Der Wikipedia-Link war schon sehr informativ, jedoch ist vorallem erklaert was es genau ist und weniger wie man es einsetzt und leider ist die Publikationsliste etwas zu umfangreich um eine gute Auswahl zu treffen.
  14. Kann hier jemand ein gutes Buch über AJAX Empfehlen welches sich an Fortgeschrittene richtet? (Also kein Buch mit 900 Seiten wo auf 400 erklärt wird was JScript und XML ist) Das Buch sollte sich auf AJAX im Java Bereich ausrichten also mit Java Komponenten serverseitig.
  15. MikeVader

    Sortierung

    Wie wärs mit dem QuickSort??? Je nach Daten kann der Shellsort effizienter laufen. Allerdings sind die Algorithmen in Arrays sehr effizient implementier und wenn man nicht spezielle Eigenschaften in der Anordnung der eigenen Daten besitzt, welche prinzipiell eine schnellere Sortierung als O(n*log(n)) erlauben sollte man da nix eigenes Programmieren. (ausser natürlich zu Lern-Zwecken)
  16. Ich habe ein "kleines" Problem mit Callbacks vom native Code auf Java Methoden. Mein System sieht kurz abgerissen so aus: Ich habe eine Klasse Service, welche einige native Methoden besitzt und eine Callback Methode (normale Java Methode). Die native Methoden werden im native code (einer C++ dll) implementiert. Diese DLL besitzt mehrere Threads. Einer dieser Threads sollte nun sporadisch die Callback Methode aufrufen. Ich habe dies folgendermassen versucht: Bei JNI_Onload habe ich den Pointer auf die JavaVM gespeichert. Sobald nun der Thread die Callbackmethode aufrufen sollte, holt er sich über die JVM das JNI Environment und über dieses dann die Objekt und Method Daten für den Aufruf. Hier tritt nun der Fehler auf. Sobald ich ihrgend eine Methode von JNIEnv aufrufe kommt einen Access Violation Exception (bzw. die jvm wird vom System abgeschossen). Der Code ist richtig implementiert. Ich habe dies ausprobiert, indem ich ihn in eine JNI native Methode gepackt habe und diese Methode von Java aufrief. Leider ist dies ja keine Option, da der Callback nicht von einem JNI Aufruf abhängig ist. Ihrgend eine Idee wieso es nicht funktioniert? Eine Bestätigung, dass es nicht funktioniert würde mir schon helfen. P.S. Ich weiss, dass ich das Problem mit Pullen oder anderen Wegen lösen kann. Mir geht es nur darum, wieso ein Callback nur funktioniert, wenn er aus einer JNI native Methode kommt. P.P.S. Ach ja synchronisation kann auch kein Problem sein ... nur schon das holen des Monitors gibt eine Exception.
  17. MikeVader

    Shortcuts?

    So sollte man es nicht machen. Nicht alle Betriebsysteme haben "Ctrl" als Funktionstaste. Mac's zum Beispiel nicht!!!! (Java ist eine Multiplattformsprache... deshalb sollte man auch danach programmieren) Die beste Lösung ist etwa so: JMenuItem menuSave = new JMenuItem("Speichern", 'S'); menuSave.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
  18. Also, ich habe eine Java Applikation, welche ohne zusätzliche Dienste, ausser dem Filesystem, laufen muss. Es ist somit unmöglich Datenbanksysteme wie Oracle zu benutzen. Aus Gründen der weiteren Verwendung der Daten müssen sie als XML abgelegt werden. Damit ich nun nicht selber eine "XML-Datenbank" schreiben muss wollte ich mal rumfragen :-) Zudem kann es in naher/ferner Zukunft sein, dass man die Daten von XML auf ein richtiges Datenbanksystem wie Oracle migriert. Deshalb wäre es schön gewesen es gäbe ein jdbc Interface für XML-Files um mit SQL auf diese zuzugreifen. (würde massiv Zeit einsparen bei einer möglichen Migration)
  19. MikeVader

    speichern als Bat?

    Die ganze Applikation in ein jar-File packen. Da musst du aber nachlesen wie es geht! (ich habe die Erfahrung gemacht, dass man besser diese Arbeit von ant machen lässt. Aber man kanns natürlich auch von Hand machen.
  20. Kennt jemand eine rein xml basierte Datenbank für Java? Also eine jdbc Schnittstelle für xml files.
  21. MikeVader

    speichern als Bat?

    Tja leider stimmt mein Link nicht... Sorry. Hier der richtige: Java SDK Documentation
  22. MikeVader

    speichern als Bat?

    Eigentlich hat kingofbraint recht. Deine Probleme sind relativ einfach und würden sich perfekt eignen um Java zu lernen. An einfachen Problemen lernt man am besten/einfachsten. Aber da es mir langweilig ist, habe ich trotzdem schon einiges geschrieben. Am besten würde man dies mit Regular Expressions machen. http://www.perldoc.com/perl5.6/pod/perlre.html (kommt ursprünglich von perl, aber wird mittlerweilen in allen Programmiersprachen unterstützt). Ich bin leider nicht so vertraut mit Regular Expressions und müsste auch zuerst Dokus durchlesen. Es gibt jedoch eine Möglichkeit, indem man sich das Wissen um den Aufbau des Files zu nutze macht. Wir wissen, dass die Zeile mit "ping -n 1 -w 50" beginnt und mit " | findstr \"TTL=\" >NUL" aufhört. Also kann man danach suchen :-) In der JavaAPI finden wir schön beschrieben wie das Gegenstück zum FileWriter heisst und funktioniert: FileReader. import java.io.*; /** * This Program is written as example for file writing and reading. * * @author MikeVader * @since 1.1 */ public class Scan { public static final String pingPrefix = "ping -n 1 -w 50 "; public static final String pingPostfix = " | findstr \"TTL=\" >NUL"; public static void main(String[] args) { File file = new File("./scan.bat"); String computerName = "pc01"; Scan scan = new Scan(); scan.createPingFile(file, computerName); System.out.println(scan.getComputerName(file)); } /** * Generate a batch-file to ping a given computer. * * @param file The name and path for the batch-file. * @param computerName The name of the computer */ public void createPingFile(File file, String computerName) { FileWriter writer; String a = "@ECHO OFF\n"; String b = pingPrefix + computerName + pingPostfix + "\n"; String c = "if %errorlevel%==0 echo 1\n" + "if %errorlevel%==1 echo 0\n"; try { writer = new FileWriter(file); writer.write(a + b + c); /* or writer.write(a); writer.write(; writer.write(c); */ writer.close(); } catch (IOException e) { System.err.println(e); e.printStackTrace(); } } /** * Retrieve the computername out of a previously generated batch-file. * * @param file The generated batch-file. * @return The computername. */ public String getComputerName(File file) { String computerName = new String(); BufferedReader reader; try { String line; /* Für etwas besseren Komfort beim einlesen verwenden wir den BufferedReader der auf dem FileReader aufsetzt. Würde jedoch auch ohne gehen. */ reader = new BufferedReader(new FileReader(file)); while ((line = reader.readLine()) != null) { if (!line.startsWith(pingPrefix) || !line.endsWith(pingPostfix)) continue; computerName = line.substring(pingPrefix.length(), line.indexOf(pingPostfix)); } reader.close(); } catch (FileNotFoundException e) { System.err.println(e); e.printStackTrace(); } catch (IOException e) { System.err.println(e); e.printStackTrace(); } return computerName; } } [/code] Du wunderst dich sicher über die etwas seltsam anmutenden Kommentare die ich geschrieben habe. Dies hat mit javadoc zu tun.
  23. MikeVader

    speichern als Bat?

    Also wenn du Java lernen willst, dann würde ich dir stark empfehlen ein geeignetes Einführungstutorial zu suchen auf dem INet oder ein gutes Buch zu kaufen. Ich kann dir leider keines empfehlen, da ich Java wärend des Studiums gelernt habe und keine Bücher hatte. Aber es gibt einige sehr nützliche Seiten auf dem Internet. Die Java API Documentation: Sie beschreibt alle Klassen von Java. http://java.sun.com/j2se/1.4.2/docs/api/index.html Die Java Language Specification: Sie erklärt und beschreibt die Sprache Java selber (z.B. wie man ein Array erzeugt, verändert, etc) http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html Noch was nützliches: Wie der Code überhaupt aussehen soll. Dies beschreiben die Java Code Conventions. Ist zwar kein muss, jedoch ist gut lesbarer und vorallem einheitlicher Code schon das halbe Programmieren :-) http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html Natürlich findest du noch viele weitere Dokumentationen und Beispiele von Java auf der Sun Microsystems Seite. Java SDK Documentations Aber nun zu deinem ganz spezifischen Problem. Code des Files Scan.java: import java.io.*; public class Scan { public static void main(String[] args) { File file = new File("./scan.bat"); FileWriter writer; String computername = "hallo"; String a = "@ECHO OFF\n"; String b = "ping -n 1 -w 50 " + computername + " | findstr \"TTL=\" >NUL\n"; String c = "if %errorlevel%==0 echo 1\n" + "if %errorlevel%==1 echo 0\n"; try { writer = new FileWriter(file); writer.write(a + b + c); /* or writer.write(a); writer.write(; writer.write(c); */ writer.close(); } catch(IOException e) { System.err.println(e); e.printStackTrace(); } } } [/code]
  24. MikeVader

    Suche Java Compiler

    Der vi! Genialster Entwickler-Editor der Welt :-)

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...