Δευτέρα, 26 Μαΐου 2008

Java Screenshot How to

http://schmidt.devlib.org/java/save-screenshot.html

[code]
/*
* Screenshot.java (requires Java 1.4+)
*/

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;

public class Screenshot {
public static void main(String[] args) throws Exception {
// make sure we have exactly two arguments,
// a waiting period and a file name
if (args.length != 2) {
System.err.println("Usage: java Screenshot " +
"WAITSECONDS OUTFILE.png");
System.exit(1);
}
// check if file name is valid
String outFileName = args[1];
if (!outFileName.toLowerCase().endsWith(".png")) {
System.err.println("Error: output file name must " +
"end with \".png\".");
System.exit(1);
}
// wait for a user-specified time
try {
long time = Long.parseLong(args[0]) * 1000L;
System.out.println("Waiting " + (time / 1000L) +
" second(s)...");
Thread.sleep(time);
} catch(NumberFormatException nfe) {
System.err.println(args[0] + " does not seem to be a " +
"valid number of seconds.");
System.exit(1);
}
// determine current screen size
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
// create screen shot
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRect);
// save captured image to PNG file
ImageIO.write(image, "png", new File(outFileName));
// give feedback
System.out.println("Saved screen shot (" + image.getWidth() +
" x " + image.getHeight() + " pixels) to file \"" +
outFileName + "\".");
// use System.exit if the program hangs after writing the file;
// that's an old bug which got fixed only recently
// System.exit(0);
}
}
[/code]

Τετάρτη, 7 Μαΐου 2008

Netbeans Mobility pack

Πρώτη μέρα στην δουλειά χθες, στήσαμε το Netbeans με το mobility pack για την ανάπτυξη εφαρμογών σε j2me. Είμαι τόσο ενθουσιασμένος που θα γράψω ένα μικρό tutorial στα γρήγορα...

Για να φτιάξετε λοιπόν ένα jar θα χρειαστεί να κατεβάσετε το μία έκδοση του Netbeans που να υποστηρίζει το mobility pack, δηλαδή το Netbeans mobility pack ή το Netbeans All.
Θεωρώ σαν δεδομένο οτι έχετε εγκαταστήσει την java
Εγκαταστήστε το Java JDK απο εδώ: http://javadl.sun.com/webapps/download/AutoDL?BundleId=18705 και κρατήστε το path που το εγκαταστήσατε.
Κατόπιν τρέξτε το αρχείο netbeans-6.1-VERSION-linux.sh με την παράμετρο "--javahome /path/to/java"

./netbeans-6.1-mobility-linux.sh --javahome ~/bin/java"

στην περίπτωση μου.

Τώρα το που μένει είναι να αλλάξετε δυο αρχεία ακόμα.
Βρείτε το αρχείο: mobility8/WTK2.5.2/bin/emulator που βρίσκεται εκεί που εγκαταστήσατε το netbeans και αλλάξτε την γραμμή javapathtowtk= /path/to/java/bin/

javapathtowtk=/usr/lib/jvm/java-6-sun-1.6.0.06/bin/

για το δικό μου σύστημα.

Ομοίως αλλάξτε το αρχείο mobility8/WTK2.5.2/bin/ktoolbar

Είσαστε έτοιμοι!



QuickPost

Snapshot "Hello j2me world, from Ventrix"

Java on wm5

Φτιάχνοντας κάποιες jar εφαρμογές με το NetBeans που έπεζαν στο κινητό, ήθελα να δοκιμάσω πως θα τρέχουν και στο pda με κάποιο jvm. Βρήκα αυτά τα δυο: Mysaifu JVM - http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html
και
Ewe Launcher - http://www.ewesoft.com/

και τα δυο freeware εννοείται.

Δοκίμασα το πρώτο και φαίνεται να δουλεύει μια χαρά με κάποια tests με class αρχεία που έκανα, όμως δεν τα καταφέρνει πολύ καλά με τα jars βγάζοντας: java.lang.Exception: No Main-Class attribute in "path" at java.lang.VMMainThread$1.Run(VMMainThread.java)


Τελικά έπαιξε άψογα το JVM της IBM ονόματι J9.