Alt 08.04.2011, 09:43:51   #1 (permalink)
Chancentod²
Benutzerbild von WhiZZler

ID: 85586
Lose-Remote

WhiZZler eine Nachricht über ICQ schicken
Reg: 06.05.2006
Beiträge: 652
WhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nett
Standard Kann Programm nicht aus Terminal starten

Begrüße!

Ich bin irgendwie zu blöd, um ein Programm vom Terminal aus zu starten. Wahrscheinlich mache ich irgendwas Grundlegendes einfach nur sensationell falsch.

Im Rahmen eines Uni Projektes möchte ich crawler4j erweitern. Ich habe den Code ausgecheckt und mir ein Projekt in eclipse angelegt. Wenn ich aus eclipse eine der Dateien mit main Methode über den "Run" Befehl starte, dann funktioniert alles genau so, wie es soll.

Wenn ich es aber über die Kommandozeile versuche, dann funktioniert nichts. Irgendwas mache ich wohl mit classpath und co falsch..

Den Source Code findet man frei zugänglich im trunk des Projekts: https://crawler4j.googlecode.com/svn/trunk/

Ich habe den Code im Paket mit ant kompiliert (mit der build.xml im root Verzeichnis). Ging alles ohne Fehlermeldungen.

Die Verzeichnisstruktur:
Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
. ./lib ./target ./target/classes ./target/classes/mycrawler ./target/classes/edu ... ... ./src ... ... ./.settings ./build ./build/mycrawler ./build/edu ./build/edu/uci ./build/edu/uci/ics ./build/edu/uci/ics/crawler4j ./build/edu/uci/ics/crawler4j/example ./build/edu/uci/ics/crawler4j/example/imagecrawler ./build/edu/uci/ics/crawler4j/example/simple ./build/edu/uci/ics/crawler4j/example/advanced ./build/edu/uci/ics/crawler4j/crawler ./build/edu/uci/ics/crawler4j/util ./build/edu/uci/ics/crawler4j/url ./build/edu/uci/ics/crawler4j/frontier ./build/edu/uci/ics/crawler4j/robotstxt ./resources
build/mycrawler ist von mir. Dort liegt eine Datei "Controller.class", in der die main Methode steht. Wenn ich im Projektverzeichnis (also . )
Code:
1:
java mycrawler.Controller
aufrufe, dann bekomme ich die Fehlermeldung:
Code:
1:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
Der logger liegt im Verzeichnis ./lib in der Datei log4j-1.2.15.jar
Ich habe jetzt schon Ewigkeiten mit dem classpath rumgespielt, diesen in meinen Umgebungsvariablen angepasst, direkt beim Programmaufruf mit java -cp ~/workspace/crawler4j/lib mycrawler.Controller usw. Aber an dem Fehler ändert sich nichts.
Meine Annahme ist, dass es doch reichen müsste, wenn das build Verzeichnis und das lib Verzeichnis im classpath stehen. Aber dem ist nicht so!

Da mir langsam Geduld und Ideen ausgehen dieser Thread.. Vielleicht fällt einem ja direkt auf, was ich falsch mache.. Da es in eclipse problemlos funktioniert liegt es entweder an falschen Parametern beim aufruf oder an ant.. Letzteres fände ich unschön, weil ich mich damit nicht auskenne. Leider gibt es zu crawler4j auch keine wirkliche Doku.

Auf jeden Fall danke an diejenigen, die sich meine Ergüsse angetan haben.
MfG,
whizzler
..and you could have it all, my empire of dirt..

WhiZZler ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 08.04.2011, 22:30:52   #2 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Moin.

Hier mal ein Halbwissen-Post, weil ich es auch immer vorgezogen hab, Eclipse größere Projekte starten zu lassen, als mich mit dem Classpath abzumühen:

Im Classpath müssen iirc alle Libs einzeln drinstehen; also jedes Jar einzeln mit Pfad angeben. Nur den Pfad hinknallen reicht ned (wobei ich mit Google gesehen hab, dass in Java6 jetzt auch Wildcards à la "path/to/lib/*" gehen sollen).
theHacker ist offline   Mit Zitat antworten
Alt 08.04.2011, 23:07:16   #3 (permalink)
Chancentod²
Benutzerbild von WhiZZler

ID: 85586
Lose-Remote

WhiZZler eine Nachricht über ICQ schicken
Reg: 06.05.2006
Beiträge: 652
WhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nett
Standard

Danke für die Antwort!

Krasse Sache. Irgendwo hatte ich das bei meinen unzähligen Debugging Versuchen gelesen, dass die jars einzeln eingebunden werden müssen. Aber ich habe es nicht geglaubt, ich Trottel Das mit der Wildcard habe ich nicht hinbekommen. Kann aber auch sein, dass die Syntax nicht richtig war.

Jetzt läuft es aber. Es gibt zwar noch ein paar Warnungen wegen irgendwelcher Konfigurationsdateien, die nicht gefunden werden, aber dafür ist es mir heute zu spät!

Danke nochmal für den Hinweis!
..and you could have it all, my empire of dirt..

WhiZZler ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[C++] Programm beim Hochfahren des Pc's starten PatrickB Programmierung 19 02.10.2009 23:00:30
datei/programm kann 2.mal nicht gestartet werden cashgnm Sonstiges 4 20.07.2008 19:03:28
Kann FF2 nicht mehr starten wolle0 Sonstiges 1 24.06.2007 14:44:08
Programm zum starten mehrerer Programme prinzQMP Programmierung 21 03.10.2006 11:11:31
Übers netzwerk programm starten real_Napster Netzwerktechnik 21 15.07.2006 20:27:45


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51:03 Uhr.