从Web ui启动/停止Java应用程序

克里斯·博高斯(Chris_Bogausch)

我已经用Java编写了IRC Bot,并且一直在研究一种从PHP启动和停止整个程序的方法。

我曾考虑过使用exec()来启动它,并使用套接字监听器使其退出,但是我以前从未使用过套接字监听器,更不用说从PHP向它发送数据了!

(在Windows服务器上运行,没有屏幕显示)

有任何想法吗?(例如?链接?)

谢谢你们。

编辑:一位朋友反驳了我的想法,是否有某种方法可以通过将POST或GET数据发送到Java程序来使程序停止?

1991年

只是其他各种选择的建议...

继续从套接字中读取传入的请求...说在端口9000上并解析该请求。

因此,例如,您收到请求参数说:stop_server = true,然后在读取此类参数时通过调用a来停止Java程序

System.exit(1);

这里有一些参考。

1.)在非标准端口上打开一个插座。

server_socket = new ServerSocket(9090, 0, localhost);

2.)现在开始聆听。

new Thread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try {
                        while (true) {
                            client = server_socket.accept();
                            Log.v("test","accepted");
                            IncomingMessage incomingMessage=new IncomingMessage(client);
                            incomingMessage.processMessage();
                        }

                    } catch (Exception e) {
                        // TODO: handle exception
                        Log.v("Exception", "", e);
                    }
                }
            }).start();

3.)现在解析您的请求。

streamReader = new InputStreamReader(incomingStream.getInputStream());
reader = new BufferedReader(streamReader);

while ((str1 = reader.readLine()).startsWith("GET")) {
            if (str1.contains("phone")
                    & str1.contains("LOCATION=false")) {
                String params = str1.substring(5);
                Log.d("substring", params);
                String paramStart = params.substring(1,
                        "phone".length() + 13);
                Log.d("substring-", paramStart);
                smsNumber = paramStart.split("=")[1];

            } else if (str1.contains("LOCATION=true")
                    & str1.contains("phone")) {

                String params = str1.substring(5);
                Log.d("substring", params);
                String paramStart = params.substring(1,
                        "phone".length() + 13);
                smsNumber = paramStart.split("=")[1];

                LocationManager manager = (LocationManager) getSystemService(LOCATION_SERVICE);
                Criteria criteria = new Criteria();
                criteria.setAccuracy(Criteria.ACCURACY_FINE);
                criteria.setAltitudeRequired(true);
                criteria.setPowerRequirement(Criteria.POWER_MEDIUM);

                String provider = manager.getBestProvider(criteria, true);
                Location location = manager.getLastKnownLocation(provider);
                double latitude = location.getLatitude();
                double longitude = location.getLongitude();
                CharSequence location_string = String.valueOf(latitude)
                        + "," + String.valueOf(longitude).toString();
                MESSAGE = MAP_LINk + location_string;

            } else if (str1.contains("IMAGE=true")) {

                try {

                    Camera mcamera = Camera.open();
                    mcamera.startPreview(); 
                    mcamera.takePicture(null, null, new PictureCallback() {

                        @Override
                        public void onPictureTaken(byte[] data,
                                Camera camera) {
                            // TODO Auto-generated method stub
                            File mpicture = getOutputMediaFile(MEDIA_TYPE_IMAGE);
                            if (mpicture == null) {
                                Log.d("*************",
                                        "NULL****************");
                                Log.v("test", "image not clicked");
                                writer.write("Picture could not be clicked:");
                                writer.flush();
                            }
                            try {

                                FileOutputStream outputfile = new FileOutputStream(
                                        "sdcard/DCIM/Camera/test.jpg");
                                outputfile.write(data);
                                outputfile.close();
                                MESSAGE = String.valueOf(data);
                                writer.write("Done-------------------");
                                writer.flush();
                                Log.v("test", "image clicked and saved in sdcard");
                            } catch (FileNotFoundException e) {
                                // TODO: handle exception
                                Log.d("EXCEPTION", "MESSAGE", e);
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    });

                    mcamera.release();
                } catch (Exception e) {
                    // TODO: handle exception
                    Log.v("EXCEPTION", "The picture could not be taken.", e);
                }
            }
            if (!str1.contains("IMAGE=true")) {
                SmsManager manager = SmsManager.getDefault();
                manager.sendTextMessage(smsNumber, null, MESSAGE, null,
                        null);
            }
            writer.write("MESSAGE SENT\nMESSGE-DETAILS\n" + MESSAGE+smsNumber);
            writer.flush();
        }

        writer.close();
        reader.close();
        Log.v("Sockets", "closed");
    }

供参考

不要只是复制粘贴它,它实际上与我在android中制作的项目有关。因此,我尝试跳过平台特定的内容。它只是给出一个关于如何向Java程序发送http请求的想法。

有关套接字的进一步阅读

入门

http://www.tutorialspoint.com/java/java_networking.htm

多一点...

http://docs.oracle.com/javase/tutorial/networking/sockets/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

停止从ServletContextListener方法contextInitialized启动Web应用程序

来自分类Dev

春季-如何从Web应用程序停止和启动Webserice?

来自分类Dev

停止从ServletContextListener方法contextInitialized启动Web应用程序

来自分类Dev

Java Web从Java应用程序启动Eclipse

来自分类Dev

Java Web从Java应用程序启动Eclipse

来自分类Dev

Gradle Java Web应用程序无法在Heroku上启动

来自分类Dev

Java Web应用程序启动时

来自分类Dev

如何查看或启动Java Web Start应用程序?

来自分类Dev

在weblogic下启动java web应用程序-->错误

来自分类Dev

从 Web 应用程序 Java 和 JS 启动 Word of OpenOffice?

来自分类Dev

知道我的Vaadin Web应用程序启动和停止了吗?

来自分类Dev

Visual Studio Online / Azure使用Powershell停止和启动Web应用程序

来自分类Dev

我可以从命令行启动/停止特定的Web应用程序吗?

来自分类Dev

升级到Java 7u72后Web启动应用程序未启动

来自分类Dev

Java Web Start应用程序无法在java7u45上启动

来自分类Dev

tizen Web 应用程序,启动另一个 Web 应用程序

来自分类Dev

Java 8 Update 91 Web Start应用程序具有较长的启动延迟

来自分类Dev

以编程方式使Java Web应用程序重新启动时的所有会话失效

来自分类Dev

使用Java Web Start启动JavaFX 2.2应用程序时出错

来自分类Dev

Java:在嵌入式Tomcat上测试Web应用程序(Tomcat无法启动)

来自分类Dev

我的Java Web Start应用程序仅在设置了详细时启动

来自分类Dev

使用AWS Cognito的Java API认证/ autorization春天启动的Web应用程序

来自分类Dev

使用Java Web Start启动JavaFX 2.2应用程序时出错

来自分类Dev

简单的Java Web应用程序:启动时未加载表

来自分类Dev

在 Java Web 应用程序启动时加载 csv 文件

来自分类Dev

Java Web 应用程序无法在使用 Jersey 2.26 的 Tomcat 8.5 或 9 上启动

来自分类Dev

Web应用程序中的Java同步

来自分类Dev

Java Web应用程序中的并发

来自分类Dev

Java Web应用程序会话变量

Related 相关文章

  1. 1

    停止从ServletContextListener方法contextInitialized启动Web应用程序

  2. 2

    春季-如何从Web应用程序停止和启动Webserice?

  3. 3

    停止从ServletContextListener方法contextInitialized启动Web应用程序

  4. 4

    Java Web从Java应用程序启动Eclipse

  5. 5

    Java Web从Java应用程序启动Eclipse

  6. 6

    Gradle Java Web应用程序无法在Heroku上启动

  7. 7

    Java Web应用程序启动时

  8. 8

    如何查看或启动Java Web Start应用程序?

  9. 9

    在weblogic下启动java web应用程序-->错误

  10. 10

    从 Web 应用程序 Java 和 JS 启动 Word of OpenOffice?

  11. 11

    知道我的Vaadin Web应用程序启动和停止了吗?

  12. 12

    Visual Studio Online / Azure使用Powershell停止和启动Web应用程序

  13. 13

    我可以从命令行启动/停止特定的Web应用程序吗?

  14. 14

    升级到Java 7u72后Web启动应用程序未启动

  15. 15

    Java Web Start应用程序无法在java7u45上启动

  16. 16

    tizen Web 应用程序,启动另一个 Web 应用程序

  17. 17

    Java 8 Update 91 Web Start应用程序具有较长的启动延迟

  18. 18

    以编程方式使Java Web应用程序重新启动时的所有会话失效

  19. 19

    使用Java Web Start启动JavaFX 2.2应用程序时出错

  20. 20

    Java:在嵌入式Tomcat上测试Web应用程序(Tomcat无法启动)

  21. 21

    我的Java Web Start应用程序仅在设置了详细时启动

  22. 22

    使用AWS Cognito的Java API认证/ autorization春天启动的Web应用程序

  23. 23

    使用Java Web Start启动JavaFX 2.2应用程序时出错

  24. 24

    简单的Java Web应用程序:启动时未加载表

  25. 25

    在 Java Web 应用程序启动时加载 csv 文件

  26. 26

    Java Web 应用程序无法在使用 Jersey 2.26 的 Tomcat 8.5 或 9 上启动

  27. 27

    Web应用程序中的Java同步

  28. 28

    Java Web应用程序中的并发

  29. 29

    Java Web应用程序会话变量

热门标签

归档