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
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!
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
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?
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