我是java的新手,想开发一个像服务器一样连续运行的java应用程序。
在Java中是否可以开发一个可以连续工作的UI应用程序?此应用程序还应该具有JNI支持,因此应该从C ++应用程序调用使用JNI导出的函数。
有人可以告诉我开始的指示吗?
感谢帮助,谢谢。
Vishal N
答案 0 :(得分:1)
是的,你可以用Java开发少用户界面的应用程序。
我希望应用服务器能够处理多个请求,事务,安全性,生命周期,持久性等。
如果答案是是,那么我将选择Java EE路线来实现您的要求。我将使用EJB3.0实现我的业务模型,并部署在其中一个应用程序服务器中,即Glassfish,JBoss等,它将支持上述所有功能,而无需重新发明轮子。
注意:该解决方案还可以灵活地使用WebService,CORBA或JMS公开远程方法。
如果答案是否,那么我可能会创建自己的独立服务器类型应用程序,它将侦听某些端口并通过一些定制协议进行通信。
为了支持JNI - 我希望你必须编写一个普通的JavaBean包装器或代理。然后,JNI将使用此代理。
答案 1 :(得分:1)
当然可以在没有UI的情况下运行。根据它的声音,您希望将Java APP创建为控制台应用程序,然后将其作为Windows服务/ Linux守护程序运行(您没有提到操作系统)。有一些java服务包装器可以让你将java代码作为服务运行(例如this one),或者你可以编写自己的代码。
我建议this book学习JNI。虽然它听起来像你需要它不是真正的JNI,而是通过TCP暴露的界面或类似的东西,另一个C ++应用程序可以用来与你的应用程序交谈。 JNI不允许其他进程与您的应用程序进行通信,它可以扩展您的Java代码,其功能无法在Java本身中实现,例如:调用一些Windows API函数。
修改强>
顺便说一句,像这样的普通Java Hello World应用程序是一个控制台应用程序:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
答案 2 :(得分:0)
是。
在Java中是否可以开发一个可以连续工作的UI应用程序?
创建一个将运行的线程或代码主线程。
此应用程序也应该具有JNI支持,因此应该从C ++应用程序调用使用JNI导出的函数。
是的,看看here
答案 3 :(得分:0)
您当然可以在没有用户界面的情况下开发Java应用程序;我想大多数人都同意这比使用用户界面开发一个更容易。
关于JNI,如果我理解了这个问题,你就会倒退;以C ++为例,JNI允许您从Java调用C ++代码,而不是从C ++调用Java代码。
答案 4 :(得分:0)
是的,您可以将Java作为服务(守护程序)运行。你可以简单地运行你的代码" daemonize"它。这样,它将与终端会话分离,并将在后台运行。
看看这里:
https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo022
了解如何在C中运行服务。
在这里,了解如何在Java中运行服务部分:
https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo029
与JNI玩得开心!