小编Pau*_*lor的帖子

如何在macOS上向客户提供具有其他服务器模式的应用程序

我有一个桌面应用程序,我使用dmgcanvas成功打包并安装在macOS上.用户只需将图标拖放到要安装的应用程序中,然后单击应用程序中的应用程序图标即可运行.

我的问题是,虽然该软件以前只是一个桌面应用程序,但它现在有一个新的模式,它作为服务器运行,然后可以通过Web浏览器进行控制.在Windows中,我只想创建设置运行的服务器,并把这个安装文件夹选项另一个.exe文件,因此用户会运行MyApp.exe的或MyAppServer.exe

但是在MacOS上我看不出怎么办同等的事情,因为没有包含安装,点击Myapp.app只是一个文件夹Myapp.app运行的应用程序,所以我在哪里把MyAppServer?

当然,用户可以在MyApp.app右键单击并运行显示包内容,然后导航到子文件夹,如包含在服务器模式下运行的CMDLINE版本.但是用户应该如何知道如何做到这一点,我想让用户轻松地运行MyAppServer?

macos install

5
推荐指数
0
解决办法
104
查看次数

如何安装Java 9 openjdk应用程序所需的最小字体集

我有一个blackbox linux机器,它只带有一种字体,/usr/lib/fonts/ipag.ttf但它似乎没有正确安装和自定义openjdk 9安装

openjdk安装没有任何字体,但我尝试创建一个字体目录并将此字体复制到其中,但它没有任何效果.

当我运行我的非gui应用程序时,它需要字体才能使用jakarta-poi创建excel电子表格,但它失败了:

Caused by: java.lang.NullPointerException
    at java.desktop/sun.awt.FontConfiguration.getVersion(Unknown Source)
    at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(Unknown Source)
    at java.desktop/sun.awt.FontConfiguration.init(Unknown Source)
    at java.desktop/sun.awt.X11FontManager.createFontConfiguration(Unknown Source)
    at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
    at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
    at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

然后我试着跑步

fc-cache -rv /usr/lib/fonts
Run Code Online (Sandbox Code Playgroud)

这报告已安装了字体(虽然fc-list没有返回任何内容)

现在我的应用程序得到了更多,但仍然失败,报告

Caused by: java.lang.NullPointerException
    at java.desktop/sun.awt.FcFontManager.getDefaultPlatformFont(Unknown Source)
    at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
    at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
    at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

那么我该如何解决这个问题,我不清楚Java应用程序工作所需的最小字体集是什么.我不清楚我是否只需要提供字体或fonts.properties文件,或者该文件仅由Oracle jres而不是OpenJdk使用

我在OpenJdk1.8中遇到了同样的问题,但是从内存中简单地创建一个字体文件夹并将字体放入其中似乎可行,但现在这个openjdk 9版本无效.

我可以将字体复制到机器上,但是我无法运行安装命令来直接将字体安装到机器上.

更新

然后我复制了Oracle jre提供的Lucida字体并放入jre/libs/font并在该文件夹上运行fc-cache -rv它现在可以工作了,为什么ipag.ttf字体不够用呢?

为什么我必须运行fc-cache cant java只需通过在fonts文件夹中找到它们来获取字体.

java fonts

5
推荐指数
1
解决办法
950
查看次数

我可以自由使用的ttf字体是Java的中文,日文和韩文

在黑盒Linux系统上,系统或openjdk都没有任何字体,因此这对我的Java应用程序造成了问题。

到目前为止,为了解决这个问题,我已经将Lucida字体从Oracle Java安装程序复制到jre/lib/fontsdir中并运行了fc-cache -rv jre/lib/fonts,这对我有用。

但是,这些标准字体似乎不支持CKJ脚本,我可以将其复制为可以为Java应用程序增加对这些脚本的支持的字体。

注意:我无法在Linux机器上运行install或类似程序,我需要一种字体,我可以将其与应用程序捆绑在一起,然后将其复制到jre / lib / fonts文件夹中。

java fonts truetype cjk

5
推荐指数
3
解决办法
5756
查看次数

HTML/Javascript 是否支持将图像拖到网页上?

HTML5/Javascript 是否支持将图像拖到网页上?

IE

我可以创建一个网页以允许用户将图像从另一个站点直接拖动到我的站点(所有客户端)上的占位符上,然后使用另一个按钮将该图像上传回服务器吗?

html javascript

5
推荐指数
1
解决办法
830
查看次数

是否可以使用触摸屏设备拖放图像

我的HTML5应用程序允许您从其他网页拖放图像.但是当在平板电脑模式下使用PC时,我似乎无法拖动图像,当然这必须在2018年实现吗?

如果确实不可能,我可以使用哪种替代机制来允许用户使用其他网站的图像?

html html5 tablet

5
推荐指数
1
解决办法
1760
查看次数

我可以在基于 arm8 的 Synology Nas 上安装 Docker 吗

我有一个 Synology Disk Station 118(似乎它使用的是 Arm8 处理器)

通过在包管理器中搜索没有找到 Docker 包我找到了这篇文章,但 Synology 包的链接只有 X64 包,文章说 Docker 不能从 Arm 工作

但是从各种文章中似乎确实可以从 arm8 平台获得 Docker

https://github.com/docker-library/official-images#architectures-other-than-amd64

还有一个非官方的链接

https://hub.docker.com/u/arm64v8/

但这些不只是容器而不是实际的 docker 本身吗?

所以可以安装在我的 Synology Nas 118 上。这是测试我的应用程序的 docker 文件所必需的。

synology docker

5
推荐指数
1
解决办法
1万
查看次数

具有Hibernate二级缓存的CPU优势何时超过初始命中

将对象添加到Hibernate二级对象缓存的CPU优势何时超过初始命中.

我目前正在使用没有二级缓存的Hibernate.这是一个处理音乐文件的应用程序(www.jthink.net/songkong),它使用Hibernate,因此它可以扩展更多数据,即它可以处理100,000首歌曲,内存比1000首歌曲更多.一旦处理完歌曲,那些歌曲就没兴趣了(除非用户运行撤销)

据我所知,如果我启用二级缓存(对于我的歌曲类),那么首先将歌曲写入缓存将使用更多的cpu然后如果只是写入数据库,并且对歌曲对象的其他修改也将需要更多的cpu资源.但是随后从Ehcache中检索歌曲将需要更少的资源,然后从数据库中检索它.

我的歌曲按文件夹逐个处理并经过多个阶段(在不同的执行程序上),当它们在下一个Executor上排队时我们只是将歌曲ID作为参数传递,否则它将使用大量堆内存来存储Song对象他们自己.因此,当特定任务实际上在Executor上运行时,它所做的第一件事就是检索那些id的歌曲.

因此,没有特定的歌曲ID被检索1000次,但每首歌曲通常被写入1至4次并检索10次.因此,如果我们有一个非常小的缓存(因为我想保持堆内存受到严密控制)我会期望处理前几个文件夹将其歌曲添加到缓存中,然后当他们从新文件夹中完成歌曲时将采取他们的放在缓存中.

但我的问题是,它值得吗?

根据经验,10次检索与1-4次写入有意义使用二级缓存,或仅在比率更像100:1时才有用?

java hibernate ehcache

5
推荐指数
1
解决办法
162
查看次数

为Docker映像创建图标

I create docker image of my application (songkong/songkong) but I notice it doesnt have an icon whereas many other docker images do, how do I add an icon to the docker image ?

(my docker image is available on docker hub)

docker dockerhub

5
推荐指数
1
解决办法
155
查看次数

hibernate SessionFactory.openSession()是否等待池中的数据库连接可用

休眠是否SessionFactory.openSession()等待池中的数据库连接可用?

我以为是这样,但是我有这个例外的客户

org.hibernate.exception.GenericJDBCException: Could not open connection
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:235)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:171)
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:162)
    at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1471)
    at com.jthink.songlayer.hibernate.HibernateUtil.beginTransaction(HibernateUtil.java:192)
    at com.jthink.songkong.analyse.analyser.MusicBrainzSongMatcher.call(MusicBrainzSongMatcher.java:83)
    at com.jthink.songkong.analyse.analyser.MusicBrainzSongMatcher.call(MusicBrainzSongMatcher.java:35)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at com.jthink.songkong.analyse.analyser.MainAnalyserService$EnsureIncreaseCountIfRunOnCallingThread.rejectedExecution(MainAnalyserService.java:100)
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
    at com.jthink.songkong.analyse.analyser.MainAnalyserService.submit(MainAnalyserService.java:121)
    at com.jthink.songkong.analyse.analyser.MusicBrainzMetadataMatcher.processMetadataFailedToMatch(MusicBrainzMetadataMatcher.java:107)
    at com.jthink.songkong.analyse.analyser.MusicBrainzMetadataMatcher.call(MusicBrainzMetadataMatcher.java:381)
    at com.jthink.songkong.analyse.analyser.MusicBrainzMetadataMatcher.call(MusicBrainzMetadataMatcher.java:34)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
    at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:689)
    at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140)
    at org.hibernate.c3p0.internal.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:90)
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380)
    at …
Run Code Online (Sandbox Code Playgroud)

hibernate h2 c3p0

5
推荐指数
1
解决办法
188
查看次数

Apache HttpClient 在 macOS 上使用 Java 11 失败

我正在尝试将我的代码从 Java 8 移动到 Java 11,这段代码......

 private static String  readMultiHttpsUrlResultAsString(List<String> mbRecordingIds, String level) throws Exception
{
    String result = "";
    class NaiveTrustStrategy implements TrustStrategy
    {
        @Override
        public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException
        {
            return true;
        }
    };

    SSLContext sslcontext = org.apache.http.ssl.SSLContexts.custom()
            .loadTrustMaterial(new NaiveTrustStrategy())
            .build();

    CloseableHttpClient httpclient = HttpClients.custom()
            .setSSLSocketFactory(new SSLConnectionSocketFactory(sslcontext))
            .build();

    StringBuilder sb = new StringBuilder("?recording_ids=");
    for(String next:mbRecordingIds)
    {
        sb.append(next + ";");
    }
    sb.setLength(sb.length() - 1);
    try
    {
        String url = "https://acousticbrainz.org/api/v1"+level+sb;
        HttpGet httpget = new HttpGet(url);

        try …
Run Code Online (Sandbox Code Playgroud)

java ssl java-11 adoptopenjdk

5
推荐指数
1
解决办法
1242
查看次数