我想在我的Android手机上安装Java Me应用程序.我尝试过使用jbed和其他一些虚拟机,但它不起作用.在Windows Mobile上,我尝试使用javaFx并且它有效,所以我尝试在android上做同样的事情,但我找不到javaFx apk.我的手机是三星GT-i5500.谢谢.
我如何开始为手机开发J2ME游戏?
关于屏幕尺寸:
我是J2ME编程的新手,所以你可以给我开始的任何链接都会很棒.
我想以JSON格式解析来自服务器的响应.我做了一些谷歌搜索,但我找不到任何库或罐子的东西.
到处都提供了开源代码作为zip文件.
我怎样才能实现这一目标?如果没有可用于黑莓的jar,那么如何在我的应用程序中使用该开源代码?
线程通常以两种方式设计(参见java教程):通过扩展Thread类或通过实现Runnable类.无论哪种方式,您都需要指定在线程内运行的内容.
我设计了一个类,一个适用于在线资源的适配器,可以检索不同类型的信息.该类由getInformationOfTypeA()和getInformationOfTypeB()等方法组成.两者都包含连接到在线资源的代码,因此两者都需要进行线程化以避免死锁.
问题是:我该如何设计?我可以像下面这样做,但后来我只能实现一个方法:
public class OnlineResourceAdapter implements Runnable {
public void run() {
//get stuff from resource
getInformationOfTypeA();
}
public static void main(String args[]) {
(new Thread(new OnlineResourceAdapter ())).start();
}
public void getInformationOfTypeA(){
//get information of type A
}
public void getInformationOfTypeB(){
//get information of type B
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是为每个方法创建单独的类,但这对我来说似乎不自然.
顺便说一句:我正在j2me中开发我的应用程序
更新:
感谢您的回复,我认为最适合使用以下方法作为方法:
你觉得这怎么样:
public class OnlineResourceAdapter{
public void getInformationOfTypeA(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
} …Run Code Online (Sandbox Code Playgroud) 我需要一个适用于J2ME/CLDC 1.1的基本JSON解析器.
Google搜索会在此返回大量答案(有些甚至在stackoverflow上),但似乎都指向不再可用的库和解决方案(例如,批次指向应该在json.org上的实现)网站,但至少我找不到任何不是J2SE的东西).
到目前为止,我最大的希望是链接源:https://meapplicationdevelopers.dev.java.net/mobileajax.html,但是从那个我甚至找不到直接下载代码的方法.
鉴于Java在所有其他方面的成熟状态,肯定有一些地方我可以使用预编译的JAR来从J2ME解析JSON吗?
我有一个帖子:
Thread t = new Thread(){
public void run(){
ServerSocketConnection scn = (ServerSocketConnection)
Connector.open("socket://:1234");
// Wait for a connection.
SocketConnection sc = (SocketConnection) scn.acceptAndOpen();
//do other operation
}
};
t.start();
Run Code Online (Sandbox Code Playgroud)
让我们说没有客户端连接到服务器,所以这个线程将被阻止.现在我想杀死上面的线程t?我怎么能杀了它?
我尝试从Windows 7 x64卸载Java ME SDK,但它对我不起作用.
如果我选择Uninstall我获得进度条,那么它就会消失,但软件仍在那里.
在最初的几次我做了这个,我得到了相同的错误消息,因为我需要帮助卸载Java ME SDK:
... show message dialog
title: Critical Error
message: Cannot load native library from path: native/jmesdk/windows/windows-x86.dll
Exception:
java.lang.UnsatisfiedLinkError:
C:\Users\Jonas\AppData\Local\Temp\nbi-8367277139934329064.tmp: Can't load IA 32-bit .dll on a AMD 64-bit platform
Run Code Online (Sandbox Code Playgroud) 我知道在J2ME中CommConnection是使用时使用的连接serial port.我知道有这些openInputStream和openOutputStream方法,但实际上我不知道如何将数据从我的MIDLet传输到COM端口(插入手机电缆的USB端口,手机是Alcatel OT-806D).例如,我想发送文本"Hello world".怎么实现呢?
这是代码:
J2ME:
import java.io.IOException;
import java.io.OutputStream;
import javax.microedition.io.CommConnection;
import javax.microedition.io.Connector;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;
public class SerialPortMidlet extends MIDlet implements CommandListener, Runnable {
private Command upload = new Command("upload", Command.SCREEN, 0);
private Command exit = new Command("exit", Command.SCREEN, 1);
private Form f = new Form("test serial port");
private Thread uploadThread;
private CommConnection com;
private OutputStream os;
public SerialPortMidlet()
{
f.addCommand(upload); …Run Code Online (Sandbox Code Playgroud) 我有一个抽象类,看起来像:
abstract class AbstractFoo implements Bar {
//Code goes here
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使AbstractFoo受保护时,我得到一个错误编译时错误,抱怨它是一个非法的修饰符.
protected abstract class AbstractFoo implements Bar {
//Code goes here
}
Run Code Online (Sandbox Code Playgroud)
为什么你不能在Java中拥有受保护的抽象类?
编辑:我应该提一下,这不是vanilla Java,实际上是Blackberry/J2ME.
是否可以使用java(JME或Android)捕获语音音频流,自定义加密它然后通过常规GSM呼叫将其作为常规流发送?当然,在其他手机上解密密码.是否允许应用程序级别java拦截音频流或在硬件级别禁用它?
是否有应用程序这样做?