How to run javatv on windows!

After few days learning ,i still don't konw how to run the JAVATV on windows, someone please tell me.Many thanks!
[128 byte] By [vicent_chinaa] at [2007-11-27 5:04:10]
# 1

If this is about JavaTV reference implementation, then RI 1.0's reference platform is Windows NT, and RI 1.1's reference platform is Linux Suse.The JMFLite implementation that is a part of the RI needs to call the platform's native APIs for the media playback; hence you can't just take RI 1.1 and run on Windows without any porting effort.

If you're trying to do some simple app development without calling into JMF, however, then you should be able to just attach javatv.jar to the pbp bootclasspath and execute your tv xlet.

Regards,

Chihiro

chihiro_saitoa at 2007-7-12 10:22:25 > top of Java-index,Java Mobility Forums,Consumer and Commerce...
# 2

Thanks!

can i run the RI 1.1 on linux redhat? if not ,the fellow is non-sense.

i download the RI 1.1 and try to run on the linux redhat ,but i meet the the fellow errors:some says this is the phoneme community problems ,but i doubt about this, because i fellow the runtime.html to do so..

[root@localhost linux-i686]# make BASIS_HOME=/home/phoneme_advanced-mr2/ JDK_INCLUDE_DIR=/home/java/include

Compiling JavaTV classes...

../../src/share/javatv/classes/java/net/DatagramSocket.java:214: cannot resolve

symbol

symbol : variable anyLocalAddress

location: class java.net.InetAddress

laddr = InetAddress.anyLocalAddress;

^

../../src/share/javatv/classes/java/net/DatagramSocket.java:469: cannot resolve

symbol

symbol : variable anyLocalAddress

location: class java.net.InetAddress

in = InetAddress.anyLocalAddress; // "0.0.0.0"

^

../../src/share/javatv/classes/java/net/MulticastSocket.java:129: cannot resolve symbol

symbol : variable anyLocalAddress

location: class java.net.InetAddress

impl.bind(port, InetAddress.anyLocalAddress);

^

../../src/share/javatv/classes/com/sun/tv/net/EncapDatagramSocketImpl.java:44: com.sun.tv.net.EncapDatagramSocketImpl is not abstract and does not override abstract method leaveGroup(java.net.SocketAddress,java.net.NetworkInterface) in java.net.DatagramSocketImpl

public class EncapDatagramSocketImpl extends DatagramSocketImpl implements SourceTransferHandler {

^

Note: ../../src/share/javatv/classes/java/net/MulticastSocket.java uses or overrides a deprecated API.

Note: Recompile with -deprecation for details.

4 errors

make: *** [.compile.javatvclasses] Error 1

2. ok , maybe i can download the PBP build for x86 linux, but i still meet the problems .

[root@localhost jtv-1_1-linux-x86-1]# ${BASIS_HOME}/bin/cvm -Djava.class.path=${JAVATV_HOME}/javatv.jar:${JAVATV_HOME}/j2me_cdc_xml.jar:${TEST_DIR} -Djava.library.path=${JAVATV_HOME}/lib RunXlet -n SvcDispXlet

Running Xlet named: SvcDispXlet

ServiceFile: com.sun.tv.receiver.ReceiverFile

JMFProperties: readProperties

java.lang.NoClassDefFoundError: org/xml/sax/helpers/DefaultHandler

at java.lang.Class.loadSuperClasses(Unknown Source)

at sun.misc.Launcher$AppClassLoader.defineClassPrivate(Unknown Source)

at sun.misc.Launcher$AppClassLoader.access$500(Unknown Source)

at sun.misc.Launcher$4.run(Unknown Source)

at java.security.AccessController.doPrivileged(Unknown Source)

at java.security.AccessController.doPrivileged(Unknown Source)

at sun.misc.Launcher$AppClassLoader.doClassFind(Unknown Source)

at sun.misc.Launcher$AppClassLoader.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)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at com.sun.tv.receiver.SIEmulator.runData(Unknown Source)

at com.sun.tv.receiver.SIEmulator.<init>(Unknown Source)

at RunXlet.setUp(Unknown Source)

at RunXlet.main(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at sun.misc.CVM.runMain(Unknown Source)

and i really want the can the JMF ,and what is the JMFlite ? I install the JMF2.1.1e on my linux , but felt confuse about the javatv? Actually really interest in the JAVATV API ,but have no clue of how to make it.hope you can help me .

THX!

vicent_chinaa at 2007-7-12 10:22:25 > top of Java-index,Java Mobility Forums,Consumer and Commerce...
# 3

Yes, JavaTV RI 1.1 should work on RH.

> i download the RI 1.1 and try to run on the linux redhat ,but i meet the the fellow errors:some says this is the phoneme community problems ,but i doubt about this, because i fellow the runtime.html to do so..

This is happening because JavaTV RI 1.1 is configured to work on top of PBP 1.0, not 1.1. Datagram and MultigramSockets APIs have changed between PBP 1.0 and 1.1.There are PBP 1.1 versions of these java.net files under src/share/javatv/classes/saved, which you can swap in.

> 2. ok , maybe i can download the PBP build for x86 linux, but i still meet the problems .

org/xml/sax/helpers/DefaultHandler class is included in j2me_xml_cdc.jar, you can try adjusting your classpath (you seem to have j2me_cdc_xml.jar instead).

JMFLite is a name of the JMF implementation we bundle with JavaTV RI.You might find javatv specification's overview.html and the technical document bundled with the RI source helpful.

Regards,

Chihiro

chihiro_saitoa at 2007-7-12 10:22:25 > top of Java-index,Java Mobility Forums,Consumer and Commerce...
# 4

thanks chihiro,

first ,i try to change the Datagram and MultigramSockets from the javatv 1.0 , but i meet more problems ,

[root@localhost linux-i686]# make BASIS_HOME=/home/phoneme_advanced-mr2/ JDK_INC

LUDE_DIR=/home/jdk1.3.1_20/include

Compiling JavaTV classes...

../../src/share/javatv/classes/java/net/DatagramSocket.java:178: cannot resolve

symbol

symbol : variable anyLocalAddress

location: class java.net.InetAddress

laddr = InetAddress.anyLocalAddress;

^

../../src/share/javatv/classes/java/net/DatagramSocket.java:284: cannot resolve

symbol

symbol : variable anyLocalAddress

location: class java.net.InetAddress

in = InetAddress.anyLocalAddress; // "0.0.0.0"

^

../../src/share/javatv/classes/java/net/MulticastSocket.java:108: cannot resolve

symbol

symbol : variable anyLocalAddress

location: class java.net.InetAddress

impl.bind(port, InetAddress.anyLocalAddress);

^

../../src/share/javatv/classes/java/net/MulticastSocket.java:124: cannot resolve

symbol

symbol : method setTTL (byte)

location: class java.net.DatagramSocketImpl

impl.setTTL(ttl);

^

../../src/share/javatv/classes/java/net/MulticastSocket.java:133: cannot resolve

symbol

symbol : method getTTL ()

location: class java.net.DatagramSocketImpl

return impl.getTTL();

^

../../src/share/javatv/classes/java/net/MulticastSocket.java:259: cannot resolve

symbol

symbol : method setTTL (byte)

location: class java.net.DatagramSocketImpl

impl.setTTL(ttl);

^

../../src/share/javatv/classes/java/net/MulticastSocket.java:265: cannot resolve

symbol

symbol : method setTTL (byte)

location: class java.net.DatagramSocketImpl

impl.setTTL(dttl);

^

../../src/share/javatv/classes/com/sun/tv/net/EncapDatagramSocketImpl.java:44: c

om.sun.tv.net.EncapDatagramSocketImpl is not abstract and does not override abst

ract method leaveGroup(java.net.SocketAddress,java.net.NetworkInterface) in java

.net.DatagramSocketImpl

public class EncapDatagramSocketImpl extends DatagramSocketImpl implements Sourc

eTransferHandler {

^

Note: ../../src/share/javatv/classes/java/net/MulticastSocket.java uses or overr

ides a deprecated API.

Note: Recompile with -deprecation for details.

8 errors

make: *** [.compile.javatvclasses] Error 1

if we can't build with PBP 1.1 ,where to download the PBP1.0 (i did download PBP 1.0 ,but it's for miniwindows,not for qt,so i think it's not for javatv,isn't it ?)

second, i try to run the javatv with PBP1.1 which i download from sun ,and fellow you suggest change the classpath , but meet the errors of UnsatisfiedLink......libqtawt.so,for my exprience ,it's the PBP build fail ,or the qt version things , but i fail to build the PBP1.1 for my linux/x86, and i try to fix it ,hope i will get rid of it soon? or is some you can help me ?

thrid, can we build javatv with PBP,just like other optional API, like RMI or JDBC,and using the command line like:make J2ME_CLASSLIB=basis PKGS=javatv?some thing like that ?or we just have to build using the make BASIS_HOME=/home/phoneme_advanced-mr2/ JDK_INC

LUDE_DIR=/home/jdk1.3.1_20/include.....

fourth ,why javatv is only for linux/x86,not for arm or other cpu? i know some Setup_box have include javatv with their machine and available for many platforms.how come?

vicent_chinaa at 2007-7-12 10:22:25 > top of Java-index,Java Mobility Forums,Consumer and Commerce...
# 5

Hi Vicent,

> first ,i try to change the Datagram and MultigramSockets from the javatv 1.0 , but i meet more problems ,

I'm afraid you're mixing up the implementations.

javatv 1.0 RI is a release against pjava 3.1.

javatv 1.1 RI is a release against PBP RI 1.0.x.

phoneme-advanced is PBP 1.1, therefore neither the javatv 1.0 or 1.1 work with it directly.Meanwhile we've included the Datagram and MutigramSocket code in JavaTV 1.1 RI, under the "saved" dir, that works with PBP 1.1. So please use them.Does this help?

> second, i try to run the javatv with PBP1.1 which i download from sun ,and fellow you suggest change the classpath , but meet the errors of UnsatisfiedLink......libqtawt.so

You probably need to set LD_LIBRARY_PATH to the location where libqtawt.so is at.

> we can't build with PBP 1.1 ,where to download the PBP1.0 (i did download PBP 1.0 ,but it's for miniwindows,not for qt,so i think it's not for javatv,isn't it ?)

See the first answer, javatv RI 1.1 is for PBP 1.0. I believe you can download the binary from here:

http://java.sun.com/javame/downloads/previous.jsp

> thrid, can we build javatv with PBP,just like other optional API,

Theoretically it's possible, but we haven't added the integrated build support for javatav so far.

> fourth ,why javatv is only for linux/x86,not for arm or other cpu?

Sure, javatv can be implemented on any cpu. Meanwhile Sun's RI is the "reference" impl, so the platform choice is driven by the ease of use and availability both internally during the release and externally after the release.

Hope this helps,

Chihiro

chihiro_saitoa at 2007-7-12 10:22:25 > top of Java-index,Java Mobility Forums,Consumer and Commerce...