没有诸如javafx.application.Platform.isRunning().
我可以通过其他方式检查平台是否已启动吗?
我想修改我的javafx.util.concurrent.Task类以updateMessage()仅在平台实际运行时调用等。
这在测试设置中很有用。
如果我测试,我会遇到 java.lang.IllegalStateException: Toolkit not initialized
我认为这可以通过类似的方式轻松避免
if(Platform.isRunning()){
updateMessage("Doing work");
}
Run Code Online (Sandbox Code Playgroud) C:\Users\Malvolio>jshell
| Welcome to JShell -- Version 9.0.1
| For an introduction type: /help intro
jshell> assert(false)
jshell>
Run Code Online (Sandbox Code Playgroud)
当断言失败时,如何让Java Shell抛出AssertionError?
我正在读一本书(Bjarne Stroustrup的编程原则和实践).
他在其中介绍了令牌:
"令牌是一系列字符,代表我们认为是单位的东西,例如数字或运算符.这就是C++编译器处理其源代码的方式.实际上,以某种形式"标记化"是大多数文本分析开始的方式."
class Token {
public:
char kind;
double value;
};
Run Code Online (Sandbox Code Playgroud)
我确实得到了他们的样子,但他从来没有详细解释过这一点,而且对我来说很困惑.
我有一个与客户端服务器通信的项目,客户端服务器发送一个自签名证书,我应该信任他才能继续连接。
private bool VerifyServerCertificate(LdapConnection ldapConnection, X509Certificate certificate)
{
foreach (var cert in CertificateFileNames)
{
var certPath = Directory.GetFiles($@"{AppDomain.CurrentDomain.BaseDirectory}", $"{cert}",System.IO.SearchOption.AllDirectories);
X509Store store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
try
{
if (File.Exists(certPath.FirstOrDefault()))
{
var certToAdd = new X509Certificate2(X509Certificate.CreateFromCertFile(certPath.FirstOrDefault()));
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, certToAdd.SubjectName.Name, true);
if (certs.Count.Equals(0))
{
store.Open(OpenFlags.ReadWrite);
store.Add(new X509Certificate2(X509Certificate.CreateFromCertFile(cert)));
store.Close();
}
}
}
catch
{
throw new Exception("Cannot install the certificate.");
}
}
X509Certificate2 certificate2 = new X509Certificate2(certificate);
return certificate2.Verify();
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但项目需要部署为 Azure 应用服务。所以我的问题是,应用程序服务环境是否有“受信任的人”存储?
该方法从连接接收 de X509 证书,并根据受信任的人员存储进行验证,因此我需要在验证之前安装证书。
谢谢。
我是 C++ 编程的初学者,有一点 Java 经验。我的目标是在服务器和客户端(在两个不同的文件夹中)之间传输文件(在本地主机中)。
我在网上找到了这段适合我的代码,它打开套接字并在服务器和客户端之间建立连接,您可以发送在终端中键入的消息。
我在互联网上尝试了很多不同的代码,要么无法编译,要么不是我需要的。
这是我发现的可以传输消息的代码。
服务器.cpp 文件
enter code here
/* A simple server in the internet domain using TCP
The port number is passed as an argument */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
void error(const char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd, newsockfd, portno;
socklen_t clilen;
char buffer[256];
struct sockaddr_in serv_addr, cli_addr;
int n;
if (argc < 2) {
fprintf(stderr,"ERROR, …Run Code Online (Sandbox Code Playgroud) 我想在文本左侧显示图标,但问题是图标显示在文本上方。它占用更多空间。我想保留 text(title) 左侧的图标。我该怎么办?
主要活动如下
类
public class Tabsadar extends AppCompatActivity {
ExpandableRelativeLayout
expandableLayout1,
expandableLayout2,
expandableLayout3,
expandableLayout4;
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
private int[] tabIcons = {
R.drawable.ic_action_name,
R.drawable.thanatottho,
R.drawable.proyojonio
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabsadar);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.container);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
setupTabIcons();
}
private void setupTabIcons() {
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
tabLayout.getTabAt(1).setIcon(tabIcons[1]);
tabLayout.getTabAt(2).setIcon(tabIcons[2]);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new tabsadarc1(), …Run Code Online (Sandbox Code Playgroud) 我不喜欢forEach的部分,但我不知道如何用lambda做得更好.
list1.stream().map(element -> {
list2.forEach(item -> {
if (element.getKey().equals(item.getKeyNextYear())) {
element.setSummPreviosYear(item.getSumm());
element.setCashboxCountPreviosYear(item.getCashboxCount());
element.setCheckCountPreviosYear(item.getCheckCount());
element.setArticleCountPreviosYear(item.getArticleCount());
}
});
return element;
}).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud) 这是一个非常奇怪的错误。在两台计算机上,代码可以完美运行。我只是在一台全新的机器上进行了设置,因此无法正常工作。运行脚本时出现以下错误;
java.lang.RuntimeException: java.security.NoSuchAlgorithmException: PBKDF2WithHmacSHA512 SecretKeyFactory not available
Run Code Online (Sandbox Code Playgroud)
导致错误的代码行是;
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance( "PBKDF2WithHmacSHA512" );
Run Code Online (Sandbox Code Playgroud)
使用JDK 1.7.0
代码都正确编译,只是在运行时在此行失败。我感觉这与一个不同的JAR文件或一个稍有不同的JDK有一些关联,但是在检查了不同机器上的所有内容之后,所有内容看起来都是相同的。
有什么想法吗?