我在Java中构建了一个小守护进程,我想在Unix下运行它作为服务(例如Debian 5).我已经读过有可能使用Java包装器,但是没有其他更容易实现的选项吗?我不能只使用Unix等命令xxx java -jar program.jar吗?
String delimiter = "\\*\\*";
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
Map<String, String> mp = new HashMap<String, String>();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for (Entry<String, String> entry : mp.entrySet()) {
html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
}
Run Code Online (Sandbox Code Playgroud)
这应该通常取代这两个字符串,但事实并非如此.有没有人有想法?
我有(相同)数据保存为GIF图像文件和PDF文件,我想将其解析为HTML或XML.这些数据实际上是我大学食堂的菜单.这意味着有一个新版本的文件必须每周解析!通常,这些文件包含一些页眉和页脚文本,以及一个充满其他数据的表.我已经阅读了有关stackoverflow的一些帖子,我也开始尝试将表数据解析为HTML/XML:
GIF
通过使用PDFBox解析PDF文件,我得到了最好的结果,但仍然(因为菜单每周更改),它不够可靠.我收到的HTML有时包含更多,有时更少的"段落"(<p>),因此我无法对数据进行足够的解析.
这就是为什么我想知道是否有其他方法可以做到这一点?
我正在尝试从ISO/IEC 14443 A型卡中读取一些信息.
在使用Android应用程序NFC TagInfo分析卡片后,我发现应用程序(AID:15845F)具有我需要的特定文件(文件ID:01).
我已经设法连接到卡并选择应用程序.
String action = getIntent().getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action))
{
Tag tagFromIntent = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);
Log.i(TAG, Arrays.toString(tagFromIntent.getTechList()));
IsoDep isoDep = IsoDep.get(tagFromIntent);
try
{
isoDep.connect();
byte[] SELECT = {
(byte) 0x00, // CLA = 00 (first interindustry command set)
(byte) 0xA4, // INS = A4 (SELECT)
(byte) 0x04, // P1 = 04 (select file by DF name)
(byte) 0x0C, // P2 = 0C (first or only file; no FCI)
(byte) 0x06, // Lc = 6 …Run Code Online (Sandbox Code Playgroud) 我有一个存档存储引擎的表,我想清除它.既不会delete,也truncate不会因为引擎定义而起作用.但除了让整张桌子重新创建之外,还有其他方法吗?
我已经知道,这是一个浅薄的副本,但我无法暗示它.这是一个简短的例子.
public class Shallow {
String name;
int number;
public Shallow (Shallow s) {
this.name = s.name;
this.number = s.number;
}
}
Run Code Online (Sandbox Code Playgroud)
测试实施......
public class ShallowTest {
public static void main (String[] args) {
Shallow shallow = new Shallow("Shallow", 123);
Shallow shallowClone = new Shallow(shallow);
shallowClone.name = 'Peter';
shallowClone.number = 321;
System.out.println(shallow.name + " - " + shallow.number);
}
}
Run Code Online (Sandbox Code Playgroud)
按照我的意图,只复制非原始数据类型String的引用,以便通过调用"shallowClone.name ='Peter';" 我也会更改"浅"的名称.我对吗?但不知何故,它只是不想工作....
我正在使用Solr 4.6.0并尝试使用导入我的数据CachedSqlEntityProcessor,但不知何故我最终得到了一个ClassCastException.
架构
<fields>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="conference" type="string" indexed="true" stored="true" />
<field name="year" type="int" indexed="true" stored="true" />
<field name="doi" type="string" indexed="false" stored="true" />
<field name="text" type="text_en_shingling" indexed="true" stored="true" />
</fields>
Run Code Online (Sandbox Code Playgroud)
数据配置
<dataConfig>
<dataSource name="mysql" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="..."
batchSize="-1"
user="..." password="..." />
<document name="publications">
<entity name="publication" query="
SELECT
sm_publications.id AS p_id,
sm_publications.year AS p_year,
sm_publications.doi AS p_doi,
CONCAT(sm_publications.title, ' ', sm_publications.abstract) AS p_text, …Run Code Online (Sandbox Code Playgroud) 我有一个运行多个线程的系统 - 我的主线程只是检查是否有要完成的工作,如果有一些,它会调用notifyAll()将执行它的子线程().在那之后,子线程wait()直到有一些新的任务.
实际上,线程系统运行可靠,但经过较长的运行时间(3-5h)后,某些子线程会在没有警告或错误的情况下死亡.他们只是一个接一个地退出 - 但是再次只有2个小时的时间范围.我已经使用jconsole来检查这种现象,哪些线程正在运行以及它们如何简单地消失.
此外,主线程每秒执行一次,但是子线程主要是wait()并且根本不经常使用(因为在测试环境中没有那么多任务).
我能想到的唯一原因是,JVM关闭了子线程,因为它们经常使用不够?
我非常感谢你的帮助!
PS所有线程都没有定义为守护进程,主线程正常工作!
谢谢你的答案,但我实际上使用这个循环.
public void addTask (Task in_task) throws InterruptedException {
synchronized (tasks) {
while (tasks.size() == MAXIMUM_NUMBER_OF_TASKS) {
tasks.wait();
}
tasks.offer(in_task);
tasks.notifyAll();
}
}
Run Code Online (Sandbox Code Playgroud)
我使用这个循环,所以只执行一些特殊的任务.