power-poler
Goto Top

Automatische Java Batch compiler

Hallo
Bin von batch auf java umgeschrieben, komme aber einfach nicht davon weg.
Es verfolgt mich wohl oder übel, nunja ein wenig kann ich es ja.

Bin gerade dabei ein Java Tutorial durchzukauen.
Dazu muss man des öfteren die java datei im cmd Fenster in eine Class umwandeln.
Wollte das ganze jetzt umgehen, indem ich die Befehle in eine bat Datei schreibe und dan einfach Durchlaufen lasse.
Nur leider sagt mir die Datei am Schluss immer das es die class Datei zum öffnen nicht finden kann.
Wenn ich dan den gleichen Befehl (wie in der bat Datei) im cmd Fenster eingebe, bekomme ich die class Datei sofort ausgegeben.
Hier mal der code:

@echo off
cd C:\Java\
set /p Name=
javac %Name%.java
java %Name%
Pause

Schreiben tuhe ich mit Notepad++
Mit Eclipse komme ich (noch) nicht zurecht, will erst mal die Sprache an sich Verstehen, und laut dem Tutorial würde auch ein einfacher Texteditor reichen, der ist dan aber auch wider zu unübersichtlich.

Außerdem kann ich in Notepad++ die Batch als Ausführbare Datei hinterlegen und mit Tastenkombination Starte, was auch sehr Praktisch ist.


Wenn es eine Möglichkeit gibt, den Namen der java Datei direkt in die Batch zu übergeben, ohne set /p, wäre das sogar noch besser.

Schonmal danke für eine Antwort.

Mfg
Power-Poler

Content-Key: 185998

Url: https://administrator.de/contentid/185998

Printed on: April 23, 2024 at 19:04 o'clock

Member: bastla
bastla Jun 05, 2012 at 17:18:29 (UTC)
Goto Top
Hallo Power-Poler!
Wenn es eine Möglichkeit gibt, den Namen der java Datei direkt in die Batch zu übergeben, ohne set /p, wäre das sogar noch besser.
Du kannst den Batch mit Parameterübergabe aufrufen oder auch Drag&Drop verwenden:
@echo off
cd /d C:\Java\
set "Name=%~1"  
javac "%Name%.java"  
java "%Name%"  
Pause
Grüße
bastla
Member: Power-Poler
Power-Poler Jun 05, 2012 at 17:47:44 (UTC)
Goto Top
Danke für deine Antwort
Leider weiss ich nicht wie du das mit "%~1" meinst, ich kann ich Notepad++ nirgends einen Parameter übergeben.
und auch wenn ich dies nicht muss, die Variable ist in dieser Form einfach leer.

Auch funktioniert der code so auch nicht.
Hier mal die Fehlerbeschreibung:


C:\Java>javac "CharBsp.java"

C:\Java>java "CharBsp"
Exception in thread "main" java.lang.UnsupportedClassVersionError: CharBsp : Uns
upported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: CharBsp. Program will exit.

Wie gesagt wenn ich jetzt cmd öffne, und dort "Java CharBsp" eingebe wird die Datei mit den aktuellen werten ausgegeben, compilieren tut es, nur ausgeben leider nicht.
Member: Power-Poler
Power-Poler Jun 06, 2012 updated at 17:36:41 (UTC)
Goto Top
Hab das Problem eingrenzen können.
Wenn ich die bat Datei mit Doppelklick starte gehts.
Wenn ich Sie aber über Notepad++ Starte bekomme ich den oben genannten Fehler.
Habe jetzt versucht das Problem zu umgehen, indem ich einfach folgende Zeile hinzugefügt habe:
start cmd.exe /k "echo off && cd C:\Java\ && java %Name%  
Aber auch das verursacht den Fehler.
Wenn ich die bat Datei aber wider mit Doppelklick öffne, wird wie der Befehl tun soll, ein neues Fenster geöffnet, und die Java Ausgeführt.
Was kann ich noch versuchen?
Für die Automatische Dateinamen übergabe habe ich schon eine Idee, weiß aber noch nicht ob es Funktioniert.
Ich lasse die bat Datei alle java Dateien im Ordner auf das Änderungsdatum Prüfen, und das jüngste soll genommen werden.

So geht jetzt endlich......
Hatte JDK 7.0.04 64bit
JRE 7 64 bit
JRE 6 32 bit

Notepad++ verwendet JRE 6 32 bit zum Aufrufen der Java
cmd die 64bit in der Version 7
Habe jetzt einfach noch die 7 in 32bit Installiert und schon gehts.
Darauf muss man erst mal kommen.

So geht jetzt alles:
@echo off
cd C:\Java\
for /f "delims=" %%a in ('dir /a-d /b /od *.java') do set "Name1=%%a"  
set Name=%Name1:~0,-5%
javac "%Name%.java"   
start cmd.exe /k "echo off && cd C:\Java\ && java %Name%  
Trotzdem danke für eure hilfe