Bukkit Launcher

Hallo Leute...

Ich hab mich neulich mal daran gesetzt einen Bukkit-Launcher zu programmieren...
Klappt auch super...

Code:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int main()
{
    SetConsoleTitle( "Bukkit Launcher" ) ;
    FILE* server = fopen( "craftbukkit.jar" , "r" ) ;
    if( server == NULL )
    {
        fclose( server ) ;
        MessageBox( 0 , "Bukkit-Server-File not accessable!" , "Server not found" , MB_OK | MB_ICONERROR ) ;
        return 2 ;
    }
    else
    {
        fclose( server ) ;
        system( "java -Xms512M -Xmx1024M -jar \"craftbukkit.jar\"" ) ;
        system( "pause" ) ;
        return 0 ;
    }
}
Jetzt wollte ich wissen ob es eine Möglichkeit gibt an den Server ein Kommando zu übergeben wenn er gestartet wird...

Danke schonmal, MCStreetguy
 
Code:
system( "java -Xms512M -Xmx1024M -jar \"craftbukkit.jar\"" ) ;
An dieser Stelle führst du quasi etwas auf der cmd aus. Ergo kannst du hier wie auf der cmd Parameter anhängen. Siehe auch die Dokumentation dazu.

  1. "Bukkit-Server-File not accessable!"
    Du meinst accessible.
  2. Auch wenn man mich danach als Typographiefaschisten bezeichnen wird: "..." ist nicht die korrekte Art einen Aussagesatz zu beenden. Drei Punkte hintereinander sind eine Ellipse und zeigen an, dass etwas ausgelassen wird. Also scheinst du in deinen Sätzen Wörter ...
 
Code:
if( server == NULL )
    {
        fclose( server ) ;
Je nach System rennt dir das fclose(0); Wände ein.
The behaviour of fclose() is undefined if the stream parameter is an illegal pointer, or is a descriptor already passed to a previous invocation of fclose().
 
das mit fclose(server); klappt bisher eig... aba kann ich ja trotzdem mal ändern... aba das mit dem parameter übergeben, wie müsste das aussehen? weil ich übergebe ja an java parameter noch nicht direkt an den server oder seh ich das falsch?

@bad_alloc
das mit den punkten hab ich mir mal angewöhnt kp warum
 
Zuletzt bearbeitet:
das mit fclose(server); klappt bisher eig... aba kann ich ja trotzdem mal ändern... aba das mit dem parameter übergeben, wie müsste das aussehen? weil ich übergebe ja an java parameter noch nicht direkt an den server oder seh ich das falsch?
Einfach hinten dran hängen, irgendwie merkt der schon, dass es nicht für die JVM ist.

fclose(0); klappt vielleicht bei dir (Windows?), allerdings darfst du nicht davon ausgehen, dass es anderswo auch funktioniert. Eigentlich kannst du nicht mal davon ausgehen, dass es mit Windows-Version X funktioniert. Oder Compilerversion X. Oder Compiler X. Oder überhaupt irgendwie. Es ist eine undefinierte Operation, die C-Runtime darf dann im Grunde alles. Ne lustige Warnmeldung ausgeben, das Programm abbrechen, ...

@bad_alloc
das mit den punkten hab ich mir mal angewöhnt kp warum
Wahrscheinlich weil du zu Schreibfaul bist um Sätze abzuschließen.
 
Zurück
Oben