标签: compilation

适用于Java 5和Java 6的即时内存Java代码编译

如何从Java 5和Java 6中的任意字符串(在内存中)编译java代码,加载它并在其上运行特定方法(预定义)?

在你点燃之前,我查看了现有的实现:

  • 大多数人依赖Java 6 Compiler API.
  • 那些没有,依靠技巧.
  • 是的,我检查了commons-jci.要么我太密集了,不能理解它是如何工作的,要么就是不能.
  • 我找不到如何向编译器提供我当前的类路径(这是非常巨大的).
  • 在有效的实现上(在Java 6中),我找不到如何正确加载内部类(或内部匿名类).
  • 如果整个事物都在内存中,我会非常喜欢它,因为它在多个环境中运行.

我确信之前已经解决了这个问题,但我找不到任何看起来甚至是谷歌半生产质量的东西(除了jci,正如我之前所说,我还没有设法使用).

编辑:

  • 我查看了JavaAssist - 我需要内部类,Java 5.0语言级支持以及使用整个类路径进行编译.另外,我想动态创建新类.我可能弄错了,但我找不到如何用JavaAssit做到这一点.
  • 我愿意使用基于文件系统的解决方案(调用javac),但我不知道如何划分类路径,也不知道如何使用特殊的类加载器加载文件(不在我的类路径中)回收多次调用.虽然我知道如何研究它,但我更喜欢现成的解决方案.

Edit2:现在,我对BeanShell"评估"感到满意.显然它完成了我需要的所有东西(获取一个字符串,在'当前'类路径的上下文中评估它.它确实错过了一些Java 5特性,但它可以使用枚举(不定义)和编译'泛型'(擦除) )类,所以它应该足够我想要的.

我不想将答案标记为已接受,因为我希望有更好的解决方案出现.

Edit3:接受了beanshell建议 - 它真的很棒.

java compiler-construction runtime compilation runtime-compilation

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

.NET世界中的静态编译

我将为拥有WinXP机器的客户端编写一个小型桌面应用程序,他们不会安装.NET框架(至少不适合我).

所以我的选择仅限于C++或VB6,两者都不是很好.我记得当时Mono想出了一个静态编译器,但最近我唯一能找到的就是Miguel de Icaza为了在iPhone上运行应用程序而在游戏引擎上进行静态编译 - 不是我的考虑到了.

有没有任何产品,免费或商业,允许我静态编译我的.net 3.5 winform应用程序?

谢谢

static compilation .net-3.5

17
推荐指数
2
解决办法
2083
查看次数

如何在Xcode中更改构建线程的数量?

我在xcode中构建了几个C++文件,需要大量内存才能编译(+ 1 GB /文件).因为我在双核笔记本电脑上执行此操作,xcode使用2个线程进行构建.这两个线程最终将构建同时占用大量内存的文件,因此系统遭受内存不足,编译即将停止.

对我来说一个充分的解决方案是强制Xcode只使用一个构建线程.有没有人知道改变Xcode使用的构建线程数的方法?

对于那些感兴趣的人,C++文件包含一个相当大的boost :: spirit :: qi解析器.

c++ xcode multithreading compilation building

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

如何在objective-c ++中编译特定文件,在objective-c中编译项目的其余部分

我目前正在忙于一个项目,我需要使用外部附件来阅读Mifare 1k标签.

附件提供了一个SDK,用(Objective?)C++编写,我按照提供的指令将XCode设置为"Compile sources as:Objective-C++",并在"Other linkers flags"中添加"-Obj-C++".

SDK编译好了,但麻烦的是我已经在项目中使用了几个库(例如ASIHTTPRequest,JSONKit,...),并且因为这些库中的那些新设置而导致编译问题.如果我切换回以前的设置,我会在阅读器的SDK中遇到编译问题

问题是:有没有办法只从SDK中编译类作为C++,而项目的其余部分作为objective-c?

编辑: SDK文件仅包含.h(和链接库)

谢谢你的帮助,迈克

xcode compilation objective-c conditional-compilation objective-c++

17
推荐指数
3
解决办法
2万
查看次数

在Go中构建和引用我自己的本地包

我正在玩Google Go,我很开心(!),但是我遇到了包子系统的一些问题.

我在Mac OS X Lion上运行Go 1.0.1.我还构建了各种单个文件程序而没有问题(我还使用html/templates构建一个小的webapp而没有任何问题,它编译并运行没有任何错误).

我已经定义了一个"可重用"的包(even.go):

package even

func Even(i int) bool {
    return i % 2 == 0
}

func Odd(i int) bool {
    return i % 2 == 1
}
Run Code Online (Sandbox Code Playgroud)

和消费者计划(useeven.go):

package main

import (
    "./even"
    "fmt"
)

func main() {
    a := 5
    b := 6

    fmt.Printf("%d is even %v?\n", a, even.Even(a))
    fmt.Printf("%d is odd %v?\n", b, even.Odd(b))
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用编译"库"时

go build even.go
Run Code Online (Sandbox Code Playgroud)

我什么都没有......没有错误,没有消息......会发生什么?

我该怎么做?

compilation package go

17
推荐指数
2
解决办法
2万
查看次数

C++/compilation:是否可以设置vptr的大小(全局vtable + 2字节索引)

我最近发布了一个关于由于C++中的虚拟性导致的内存开销的问题.答案让我了解vtable和vptr的工作原理.我的问题如下:我在超级计算机上工作,我有数十亿个对象,因此我不得不关心由于虚拟性造成的内存开销.经过一些测量,当我使用具有虚函数的类时,每个派生对象都有其8字节的vptr.这根本不可忽视.

我想知道intel icpc或g ++是否有一些配置/选项/参数,使用"全局"vtable和可调精度的索引而不是vptr.因为这样的事情将允许我使用2字节索引(unsigned short int)而不是8字节vptr用于数十亿个对象(并且很好地减少了内存开销).有没有办法用编译选项做到这一点(或类似的东西)?

非常感谢你.

c++ compilation g++ intel vptr

17
推荐指数
1
解决办法
562
查看次数

为什么需要编译Java代码,但JavaScript代码不需要编译

为什么用Java编写的代码需要用JVM解释的字节代码编译,但是用JavaScript这样的语言编写的代码不需要编译,可以直接在浏览器中运行?

有没有一种简单的方法来理解这个?

这两种语言的编写方式之间的根本区别是什么,这可能有助于理解这种行为?

我不是CS学生,所以请原谅这个问题的天真.

javascript java bytecode compilation

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

使用多个Python版本构建Boost

我使用Python的几个版本我的电脑上:2.6.6,2.7.62.7.9.当我用boost-python编译Boost时,我必须让Python在参数中使用.如果我想要兼容性,我是否要为每个Python版本编译Boost?(这是非常巨大的!)或者有没有办法只使用一个Boost版本和几个python版本?

python boost compilation boost-python

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

npm with node-sass和autoprefixer

我使用node-sass将我的所有Sass文件编译为master.css.这很好但现在我想添加前缀.我想只使用npm,没有Gulp或Grunt.

这是我的package.json文件:

{
  "name": "xxxxxx.com",
  "version": "1.0.0",
  "description": "",
  "watches": {
    "sass": "src/scss/**"
  },
  "scripts": {
    "sass": "node-sass src/scss/master.scss -o dist/css/ --style compressed",
    "prefix": "postcss --use autoprefixer dist/css/master.css -d dist/css/master.css",
    "dev": "rerun-script"
  },
  "author": "Jan",
  "license": "ISC",
  "devDependencies": {
    "autoprefixer": "^6.3.1",
    "browserify": "^13.0.0",
    "clean-css": "^3.4.9",
    "node-sass": "^3.4.2",
    "postcss-cli": "^2.5.0",
    "rerun-script": "^0.6.0",
    "uglifyjs": "^2.4.10"
  }
}
Run Code Online (Sandbox Code Playgroud)

我不能让它运行.我使用autoprefixer和postcss-cli.这些模块已在本地安装在项目目录中.我认为我的"剧本"部分是错误的.那看起来怎么样?

compilation node.js npm node-sass autoprefixer

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

我的运行php如何编译?

我正在尝试从源代码编译一个新的PHP(5.4.0)实例,并希望保持与已经从发行版Ubuntu-11.10安装的那个(PHP 5.3.6-13ubuntu3.6)的兼容性.也就是说,我想./configure使用与安装的PHP相同的指令运行.

我总能看到./configure输出的命令,phpinfo()但这一次,令我惊讶的是,没有提供.

你知道任何阻止phpinfo输出编译配置的标志吗?要么,

你知道如何编译PHP的其他方法吗?

php compilation configure phpinfo

16
推荐指数
2
解决办法
7608
查看次数