我想读取一个非常大的文件的最后n行,而不是使用Java将整个文件读入任何缓冲区/内存区域.
我查看了JDK API和Apache Commons I/O,但无法找到适合此目的的API.
我在想UNIX中的尾部或更少的方式.我不认为他们加载整个文件,然后显示该文件的最后几行.在Java中也应该有类似的方法来做同样的事情.
我正在尝试将 Jenkins 代理连接到控制器。
我们只能从公司防火墙打开一个端口(例如 8888)来与 AWS 上托管的控制器进行通信。该端口用于连接到控制器 Jenkins 机器上运行的 jnlp 进程。由于这个原因,我们无法使用http下载slave-agent.jnlp文件。我已手动下载了slave-agent.jnlp 文件,并且尝试发出以下命令来启动代理。
java -jar slave.jar -jnlpUrl file:///oracle/app/jenkins/slave-agent.jnlp -secret 7f079707d5632d2db2501be73f1a6f5f6422b9c9fde806afd8fdd2000d5db123
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Failing to obtain file:/oracle/app/jenkins/slave-agent.jnlp?encrypt=true
java.io.IOException: file:/oracle/app/jenkins/slave-agent.jnlp?encrypt=true doesn't look like a JNLP file; content type was null
at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:301)
at hudson.remoting.Launcher.run(Launcher.java:218)
at hudson.remoting.Launcher.main(Launcher.java:192)
Waiting 10 seconds before retry
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个,但没有任何运气。
java -jar slave.jar -jnlpUrl file://localhost/oracle/app/jenkins/slave-agent.jnlp -secret 7f079707d5632d2db2501be73f1a6f5f6422b9c9fde806afd8fdd2000d5db123
Run Code Online (Sandbox Code Playgroud)
该文件位于具有读写权限的位置。
关于为什么 java 进程无法读取该文件的任何线索?