Полезный ключ cl.exe /EP
Раньше, когда я занимался в свободное время J2ME играми, очень напрягало отсутствие препроцессора в java, т.к. сложно было делать и поддерживать много микроизменений в коде требуемых издателями/особенностями телефонов и т.д. Тогда я сделал свой препроцессор для java с синтаксисом как у C++, недавно выяснилось - снова изобретал велосипед, но т.к. на момент написания я информации не нашел, напишу об этом тут:
У cl.exe есть отличный ключик /EP о котором естественно написано в MSDN. Так вот этот ключик обрабатывает препроцессром заданый файл и результат выдает в stdout. Обрабатывается файл полноценно, гораздо лучше чем мой велосипед, на который я еще и время зря тратил.
Файл: test.java
//test.java
//------------------------------------------------------------------
import java.io.*;
import javax.microedition.io.StreamConnection;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
#ifdef NOKIA
import com.nokia.mid.ui.FullCanvas;
#endif
public class Game
#ifdef NOKIA
extends FullCanvas
#else
extends Canvas
#endif
implements Runnable
{
public Game()
{
#ifdef SOUND_SUPPORT
#include "sound_check.java"
#endif
}
}
//------------------------------------------------------------------
|
| _Winnie C++ Colorizer |
Файл: sound_check.java
//sound_check.java
//------------------------------------------------------------------
//check if sound is supported
Class c = null;
try
{
c = Class.forName("javax.microedition.media.Player");
} catch (Exception ex) { }
if (c != null)
{
System.out.println("Sound supported");
return true;
}
System.out.println("Sound NOT supported");
System.out.println(__DATE__);
//------------------------------------------------------------------
|
| _Winnie C++ Colorizer |
И запустим на них: cl /C /I”c:\commonfiles\” /DNOKIA=1 /DSOUND_SUPPORT=1 /EP /Tctest.java > output.java в результате получим output.java который уже можно скармливать java компилятору.
Так же можно делать с любым текстом где нужен препроцессор, всякие скриптовые языки/генерация кода и т.д., очень полезно знать, что такая фича есть.


