所以我最近了解到JDK 1.6中提供的新JavaCompiler API.这使得直接从运行代码编译String
到.class
文件变得非常简单:
String className = "Foo";
String sourceCode = "...";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
List<JavaSourceFromString> unitsToCompile = new ArrayList<JavaSourceFromString>()
{{
add(new JavaSourceFromString(className, sourceCode));
}};
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
compiler.getTask(null, fileManager, null, null, null, unitsToCompile).call();
fileManager.close();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
FileInputStream fis = new FileInputStream(className + ".class");
IOUtils.copyStream(fis, bos);
return bos.toByteArray();
Run Code Online (Sandbox Code Playgroud)
您可以JavaSourceFromString
从Javadoc获取源代码.
这将非常方便地编译sourceCode
到Foo.class
当前工作目录中.
我的问题是:是否可以直接编译到byte[]
数组,并避免File
完全处理I/O 的混乱?
伙计们,
我们有一个有趣的技术挑战.如何编写一个跟踪软件使用情况的安全审计文件,以便许可证费用可以根据使用情况进行,从而使那些使用它的人更容易负担得起.
具体来说,TickZoom为对冲基金出售alpha代交易平台,目前每月需要2000美元才能获得许可,包括支持(将很快增加到两倍以上).这对机构来说很好,但对个人来说太贵了.个人经常要求更低的价格换取使用软件赚取的利润的百分比,直到他们能够支付固定费用为止.
我们喜欢这个提议.但我们需要一种可靠的方法来审核平台上实际产生的利润,以及通过删除或覆盖审计文件来阻止用户"游戏"它的方法,从而报告收益低于实际收益.
此应用程序是用C#编写的,系统的这一部分是混淆的,至少使解密代码变得困难.
另一个要求是针对每次发生的交易写入文件,以便在用户认为总费用存在差异的情况下允许更深入的审核.这样,个人贸易利润可以与经纪人的陈述进行比较.
当然,假设文件将被加密.
但任何关于如何使其"防篡改"的想法?特别是针对简单的删除尝试?
我的第一个猜测是让软件始终需要一个预先存在的审计文件,否则它将拒绝运行.
然后,当我们交付软件时,它会打包一个"空"审计文件,但事实上,它有某种防篡改验证.
用户可能试图"篡改"文件的下一个显而易见的技术是让某人简单地备份原始的"空"文件,然后用它来覆盖审计文件,从而欺骗系统认为这是一个新的开始.
也许这可以通过包含某种"最后更新时间戳"和到期时间来解决.
此外,欢迎完全不同的解决方案想法.在这种情况下,我们可能会被迫添加"电话回家"功能,以便交易记录到我们的中央服务器.但这似乎是不利的,并可能在关键任务应用程序中增加另一个失败点.一般来说,他们非常不喜欢"手机之家"功能,原因很明显.
真诚的,Waynek
所以现在我的网页设置与浏览器窗口的大小完全相同overflow:scroll
.基本上页面排列在两列和三行表中.我不想使用表格进行样式/格式化,所以我的问题是如何进行此迁移.
我的页面(简而言之):
<table>
<tr>
<td>
<div style="overflow:scroll;">
<div>
stuff1
</div>
<div>
stuff1A
</div>
</div>
</td>
<td>
<div style="overflow:scroll;">
<div>
stuff2
</div>
<div>
stuff2A
</div>
</div>
</td>
</tr>
<tr>
<td>
<input type="submit"><input type="submit"><input type= "submit">
</td>
<td>
<input type="submit"><input type="submit"><input type="submit">
</td>
</tr>
<tr>
<td>
<textarea>stuff3</textarea></td>
<td><select multiple>
</select></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
问题本质上是我想嵌套<div>
而不<div>
在换行符上放置第二个嵌套:
<div style="overflow:scroll;"> <div>stuff4</div><div>stuff4A</div> </div>
<div style="overflow:scroll;"> <div>stuff5</div><div>stuff5A</div> </div>
Run Code Online (Sandbox Code Playgroud)
我希望上面显示在同一行上的两个可滚动区域,我不能使用,<textarea>
因为文本需要多种颜色(请参阅提供的链接).对于那些感兴趣的人,该页面最终将成为大学CS部门完全在浏览器内即时消息技术支持系统的工作人员.
我有三个方法,一起将节点保存到数据库.目前,除非所有写入都成功,否则这不会达到不提交更改的预期效果.
conn.setAutoCommit(false);
writeNodeTable(node, newNodeNID);
writeContentTypeBoutTable(node, newNodeNID);
writeTerms(node, newNodeNID);
conn.commit();
Run Code Online (Sandbox Code Playgroud)
如果在第二种或第三种方法中存在问题(例如抛出未捕获的异常),我想回滚所有更改.有什么方法可以使用交易来做到这一点?
这是一个这样的DB写入功能:
private void writeTerms(DrupalNode node, int newNodeNID) throws SQLException {
String sql = "INSERT INTO term_node (nid, vid, tid) VALUES (?, ?, ?)";
PreparedStatement prep = conn.prepareStatement(sql);
prep.setInt(1, newNodeNID);
prep.setInt(2, newNodeNID);
String schoolName = termHelp.schoolOfAgainst(node.get(BoutField.against));
prep.setString(3, schoolName);
prep.execute();
String fencerName = termHelp.fencerOfAgainst(node.get(BoutField.against));
prep.setString(3, fencerName);
prep.execute();
prep.close();
}
Run Code Online (Sandbox Code Playgroud) 我想在flex中制定规则来使用像/**/这样的c风格的注释
我有以下内容
c_comment "/*"[\n.]*"*/"
Run Code Online (Sandbox Code Playgroud)
但它永远不会匹配.知道为什么吗?如果您需要更多我的代码请告诉我,我会提交整件事.感谢任何回复的人.
我正计划使用Boost.Spirit 2进行脚本转换实用程序(用于扩展诊断信息).
虽然支持行信息等解析错误,但我如何使用Qi存储成功解析的表达式的行号?
我有一个泛化类,我希望子类如下:
public class SomeTable<T extends BaseTableEntry>
extends BaseTable<T>
{
public SomeTable(int rows, int cols)
{
super(rows, cols, SomeTableEntry.class);
//Does not compile:
//Cannot find symbol: constructor BaseTable(int, int, java.lang.Class<blah.blah.SomeTableEntry.class>)
}
}
Run Code Online (Sandbox Code Playgroud)
...通用化超类的位置是:
public class BaseTable<T extends BaseTableEntry>
{
public BaseTable(int rows, int cols, Class<T> clasz)
{
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我理解编译器错误,但似乎找不到解决方法,只是在SomeTable
构造函数中包含一个额外的参数.
有什么建议?
谢谢!
java ×3
html ×2
audit ×1
boost ×1
boost-spirit ×1
c# ×1
c++ ×1
compilation ×1
cracking ×1
css ×1
database ×1
flex-lexer ×1
generics ×1
html-table ×1
in-memory ×1
javascript ×1
jsr199 ×1
mysql ×1
security ×1
subclass ×1
transactions ×1
wcf ×1