Java 你能在c++;

Java 你能在c++;,java,c++,swing,c++14,Java,C++,Swing,C++14,这可能是一个有点奇怪的问题,但我想知道您是否可以在c++14中使用Java。我真的不喜欢GTK(我觉得它让人困惑和过于复杂)。然而,Swing非常容易使用,并且您可以非常快地获得一个工作项目。所以我想知道你是否可以在C++内部使用java Swing,所以我可以用Swing作为前景,就像你看到的图形一样,用C++来做背景,就像你看不到的东西,比如计算和对象和东西。因此,如果我可以用C++代码告诉Swing看起来是什么样子,或者什么时候更新,这对我想到的项目来说是非常有用的。提前谢谢你给我的建议

这可能是一个有点奇怪的问题,但我想知道您是否可以在c++14中使用Java。我真的不喜欢GTK(我觉得它让人困惑和过于复杂)。然而,Swing非常容易使用,并且您可以非常快地获得一个工作项目。所以我想知道你是否可以在C++内部使用java Swing,所以我可以用Swing作为前景,就像你看到的图形一样,用C++来做背景,就像你看不到的东西,比如计算和对象和东西。因此,如果我可以用C++代码告诉Swing看起来是什么样子,或者什么时候更新,这对我想到的项目来说是非常有用的。提前谢谢你给我的建议


编辑:能够在Java中使用c++14也是可以接受的。此外,如果有人能给我的例子代码也,这将是非常有帮助的。谢谢

>不应该从C++运行java,而是从java中运行C++。Oracle提供了一种使用JNI加载本机共享库的方法

<> >你将在java中使用Swing创建视图,然后通过调用C++函数来更新视图,并在共享库中导出。

这是说,使用JNI相当棘手,C++的速度改进可能不值得。因此,您应该考虑只使用java(或者仅C++和库来创建GUI,例如Qt)

。您的方向是一个趣味(从C++程序加载JVM或者从JVM端加载DLL)。 <>通常你会走的方法更合理,例如,如果你已经有一个C++程序,你可能想从C++一侧加载JVM。那就是你的情况。特别是如果您要添加的java本质上是“C++脚本应用程序”。

如果你已经有了一个java程序,想要访问C++的DLL,你可以从java中加载DLL,编写一个简单的JNI/本地java类。 在我们这个时代,您会使用像JNA这样的工具(而不是JNI):


或者可以使用SWIG生成C++类的包装器:

可以从java调用C++代码。也许这会有所帮助。使用JNI(或JNA)将两个世界混合在一起是可能的,但对初学者来说不是这样。您可能想看看是否想沿着这条路走得更远。我猜您可以使用某种“服务器”运行,用C++编写,并响应来自某种爪哇/Swing客户端的请求。有几种不同的协议可以用来实现这一点。不过,所有这些都很棘手。你为什么不把你的应用程序完全用java写呢?你选择的方法在技术上是可行的,但是要想达到你的目的,就必须有许多更简单的方法。这也不是任何一个在StAcExpBoad问题/答案的上下文中都能很好回答的问题,而且我认为你必须学习C++的基础知识。Swing和JNI/JNA。任何像样的答案都需要几页或更多的说明和代码。