化石原创文章,转载请注明来源并保留原文链接


mac机上安装jdk 1.8, jdk10,jdk 11。写一个javafx的界面程序,因原因使用jdk11以下。

写的工程中编译工程,出现java: release version 5 not supported。

工程project structure中,以下几个地方:

1、Project Structure | Project上,Project SDK选的是10,Lauguage Level选的是8。

2、Project Structure | Modules | Sources,Lauguage Level选的是5。

3、Project Structure | Modules | Dependencies,Module SDK选的是10。

4、Platform Settings | SDKs,JDK Home path选的是10的home。

5、Other Settings | Preferences for new projects |Build,Execution,Deployment | Compiler | Java compiler | Project bytecode version,选的是same as language。

尝试把第2项里的5改成10,然后再Rebuild。发现问题依旧。回头在去看第2项的地方,发现还是原来的5,看来这个设置下面改不掉。

因为是maven的工程,于是在pom.xml加入了下面内容:

    <properties>
        <maven.compiler.source>1.10</maven.compiler.source>
        <maven.compiler.target>1.10</maven.compiler.target>
    </properties>

然后必须在pom.xml上点出上下文菜单,reimport。最后再Build |Rebuild Project,问题解决。


1、上面的步骤中,改动pom.xml后reimport是必须要注意的一点

2、添加的内容中,maven.compiler.source可以改成1.8,在上述的环境中也能成功。

3、上面的属性,对应到了工程设置2中的level。maven reimport后可以看出来两者的对应。每次pom.xml的reimport,xml文件里的版本号会影响到工程的这个设置。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


后台程序,使用DataTable的前台排序功能,一直没有问题。突然有天发现排序错乱了。表现是无论通过哪一列让其排序,看起来结果都不对。

跟踪了一下源代码服务器日志,发现对应的DataTable配置没有改动。直接把问题放到了数据上。数据喂给DataTable的地方,原来修改了个前端加密显示数字的地方,所以导致肉眼上看到的数字和数字内部、也即后面的数字号码并不是按照默认数字的升序、降序排列。而DataTable显然使用内部的号码排序,所以导致这个错误。

干掉这个错误的方式是可以让这段数字不加密,恢复原来的方式(因为是后台使用的一个表格)。如果发生在前端,要支持加密的话,必须让数字加密的时候不要改变0到9本来在ascii表里的顺序。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


1、下载需要的ttf字库文件,比如可以搜索PingFang-SC-Regular.ttf下载

2、安装fonttools

pip install fonttools

3、上面的工具安装后可以启用命令

pyftsubset pathofttffile –text=”characterneeded” –output-file=”generatedfilepath”

举例:

pyftsubet ~/PingFang-SC-Regular.ttf –text=”1234567890″ –output-file=”./output.tty”

4、生成的字库文件转化成svg文件,使用下面的在线网站直接转化

https://convertio.co/

5、转化后的svg使用这个在线网站转化成网站需要的资料

http://fontello.com/

到这里我们就得到了加密后的字库和对应的字与它的代码的关系(可以在上面的资料的demo.html看映射关系)

6、拷贝第5步的css文件和字库到工程

7、写一个自己的css类给特定的显示使用,里面的font-family使用我们6中css文件中的font-face定义到的名字

8、使用。在需要的地方,引入我们自己的css类,显示的内容的码由后台通过字和代码的映射,替换原来的字。然后交由浏览器显示即可。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


mac系统上,做了一次brew update; brew upgrade; 本来一直运行正常的mongodump命令突然出错,错误如下:

$ dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib   
Referenced from: /usr/local/bin/mongodump   
Reason: image not found

查了一下网络,出这个问题的不少,大家也不一定都是用mongodump出这个问题,各个软件都有。毕竟,问题的关键是个中间库:openssl,使用该软件的软件多如牛毛。

解决这个方式我就直接Downgrade openssl:

1、brew uninstall –ignore-dependencies openssl

2、brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb

第1步是卸载当前的openssl,因为有python之类的会依赖这个库,所以加了参数强制卸载。

第2步就是安装openssl 1.0.0.


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


前面,我们在CentOS 7上架设了Tomcat 9,并且能够在logs目录下看到Catalina.out这个log文件(非常详细的本来控制台输出对应的log)。大多时候,我们可能都通过看log,回溯并解决相应的问题。

但是很多时候,比如刚开始部署就发生些原来不曾遇到的问题,能通过控制台看到事实的输出就成为一个必要的手段。在CentOS上,这个只需要一个命令:

tail -f catalina.out

tail命令负责的事情是,让指定文件(上面的命令指定catalina.out)最后的N行(默认为10)内容输出到标准设备上(默认是终端,也就是console)。参数-f,让tail负责持续监控文件的改变,有改动一并把改动输出。

因此,通过该命令,我们就能在控制台看到服务器的相应输出。调试自己的Java Web Application,只要通过System.out.println()输出信息,就能在Console上看到。


化石原创文章,转载请注明来源并保留原文链接